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
& Name
de 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??
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
Vous devez vous connecter pour publier un commentaire.
D'abord Créer un BO liste pour Dropdownlist en VUE
Dans Le Contrôleur:
OriginalL'auteur Bhupendra Shukla
de ce que je vois dans votre code, vous créez la liste de sélection et réglage de la ViewBag.BOData sur le contrôleur.
Afin de rendre l'affichage que vous devriez faire ceci
au lieu de
Concerne l'accès à la base de données que vous essayez d'utiliser le code de "première" dans une base de données existante?
Si vous vous avez besoin de redéfinir le contexte constructeur comme ce
voir ce lien http://msdn.microsoft.com/en-us/data/jj200620.aspx
Espère que cela aide.
public iRegDBContext() :base("Name= iRegDBContext")
Quelle est la signification et l'utilisation de cette???Lorsque vous utilisez le Code de "Première" en essayant de se connecter à une Base de données existante, vous devez dire à entity framework pour utiliser cette base de données sinon il va créer une base de données appelée iRegDBContext + de hachage. vous pouvez voir dans le lien que j'ai posté dans la réponse.
OriginalL'auteur hjgraca
essayez de construire votre liste déroulante de cette façon
et puis dans votre contrôleur
J'espère que cela aide
tapez dans votre contrôleur nom et tapez ctrl-. cela va mettre dans le chemin d'accès complet à votre contrôleur (projet de, région, etc)
OriginalL'auteur Matt Bodily
Récemment, j'ai eu ce problème aussi et a réussi à le faire fonctionner à l'aide de Viewbag. Vous devez l'adapter à votre base de données les tables, mais ça marche et c'est tout à fait simple.
Le remplissage de la liste Déroulante avec la Db de Données
OriginalL'auteur ricky89