ASP.NET MVC 4 Voulez remplir la liste déroulante à partir de la base de données

Je suis nouveau membre ASP.NET MVC 4. Je veux remplir dropdownlist de table de base de données BO où le nom de Colonne est Id, Code, Name, OrgId. Je veux lier deux Code & Namede données de la colonne de propriétés de datatextfield et Id de Données de la colonne à DataValueField de la liste déroulante. J'ai créé un code pour ce qui sont comme suit MAIS ce n'est PAS le renvoi de DONNÉES à PARTIR de la TABLE et var BOList, c'est de rester vide :

my connectionstring is 


 <add name="iRegDBContext"
  connectionString="Data Source=****;Initial Catalog=iReg;User ID=**;Password=****;Integrated Security=True"
  providerName="System.Data.SqlClient"
/>

Ma classe de Contrôleur :

public class iRegController : Controller
{
    private iRegDBContext l_oDbBO = new iRegDBContext();  

    //GET: /iReg/

    public ActionResult PopulatejQgrid()
    {
        var BOList = l_oDbBO
                     .BO
                     .ToList()
                     .Select(d => new SelectListItem
                         {
                             Value = d.Id.ToString(),
                             Text = d.Name + "[ " + d.Code + " ]"
                         });
        ViewBag.BOData = new SelectList(BOList, "Value", "Text"); 
        return View();
    }
}

Ma classe de Modèle :

public class BO
{
    public Guid Id { get; set; }
    public string Code { get; set; }
    public string Name { get; set; }
}

public class iRegDBContext : DbContext
{
    public DbSet<BO> BO { get; set; }
}

Mon cshtml classe :

@model MvciReg.Models.BO

@{
    ViewBag.Title = "PopulatejQgrid";
}

@using (Html.BeginForm())
{
    <fieldset>
        BO : 

        @Html.DropDownList("BOData")
        <p>
            <input type="submit" value="Go" />
        </p>
    </fieldset>
}

Je ne sais vraiment pas où je vais mal. J'ai développé mon code de référence de lien suivant Cliquez ici . Gentiment suggérer la correction dans le code ...

Mise à JOUR: j'ai essayé de suivre Matt Corporelle du code dans mon contrôleur et ce que je vois est le code n'est pas de l'extraction de données à partir de la base de données et que le code est

    public ActionResult populatejQgrid()
    {
        ViewBag.BOData = GetDropDown();

        return View();
    }

    public static List<SelectListItem> GetDropDown()
    {
        List<SelectListItem> ls = new List<SelectListItem>();
        var lm = from m in db.BOs //fetch data from database
                 select m;
        foreach (var temp in lm)
        {
            ls.Add(new SelectListItem() { Text = temp.Name, Value = temp.Id.ToString() });
        }
        return ls;
    }

Dans Le Contrôleur :

      @Html.DropDownList("BOData", (List<SelectListItem>)ViewBag.BOData)

Mais quand j'ai vu la valeur de ls par le biais de la regarder toujours me montrer Count = 0 mais sa ne me donne pas d'erreur.

J'ai trouvé quelque chose de nouveau ce problème. Quand je l'ai gardé pointeur de la souris sur var lm; il me montre requête et la requête nom de la table dans la clause from est pas que dans ma base de données SQL. Ma table SQL nom est BO et dans la requête, c'est de prendre les Bep. Je ne sais pas d'où ce nom est à venir. Je pense que c'est la cause principale de tous ce problème Alors, Comment vais-je surmonter cette??

il défini une liste déroulante controll avec le nom. essayez d'utiliser @Html.DropDownListFor(m=>m.Id, new SelectList(ViewBag.BOData,"Valeur", "Text")) dans la vue
Est-il une règle que vous devez donner le nom de la table au nom de la classe ou de la classe DbContext nom????
Vous êtes à l'aide EF/nhibernate? Le premier Code?
Je suis à l'aide de EF...
Mon Contrôleur est variable var BOList, c'est de rester vide. Alors, Comment puis-je obtenir les données de cette variable??

OriginalL'auteur Rahul | 2013-10-12