简体   繁体   English

从asp.net mvc中的数据库中选择多个实体

[英]select multiple entities from database in asp.net mvc

I try to take gender entities(male or female) from database and I want to show it in dropdown box: 我尝试从数据库中获取性别实体(男性或女性),并希望在下拉框中显示它:

Controller: 控制器:

List<Gender> list2 = db.Gender.ToList();
ViewBag.GenderList = new SelectList(list2, "GenderID", "GenderType");

View: 视图:

@Html.DropDownListFor(model => model.GenderID, ViewBag.GenderList as SelectList,"--select--",new { @class="form-control"})

Where is my fault ? 我的错在哪里? I need help 我需要帮助

Gender Class 性别阶层

public class GenderViewModel
{
    public int GenderID { get; set; }
    public string GenderN { get; set; }
}

Personal Class 个人班

public class PersonalViewModel
{
    public int PersonalID { get; set; }
    public string PName { get; set; }
    public string PLastname { get; set; }
    public System.DateTime DOB { get; set; }
    public string Email { get; set; }
    public string Phone { get; set; }
    public string PPassword { get; set; }
    public int GenderID { get; set; }
    public int PAuthorisation { get; set; }
    public bool PStatus { get; set; }
    public int ShopId { get; set; }
    public System.DateTime JobStartDate { get; set; }

    public string GenderType { get; set; }
    public string ShopName { get; set; }
}

Your Gender class has GenderN (I presume GenderName?) but is binding to GenderType, so that mismatch alone will cause an exception. 您的Gender类具有GenderN(我假设是GenderName?),但是绑定到GenderType,因此仅不匹配将导致异常。 ViewBag is dynamic, so you shouldn't need the cast in the view (since it's evaluated at runtime)... ViewBag是动态的,因此您无需在视图中进行强制转换(因为它是在运行时评估的)...

Change GenderClass: 更改GenderClass:

public class GenderViewModel
    {
        public int GenderID { get; set; }
        public string GenderName { get; set; }
    }

And change controller: 并更改控制器:

ist<Gender> list2 = db.Gender.ToList();
ViewBag.GenderList = new SelectList(list2, "GenderID", "GenderName");

Posting the specific error will help. 发布特定错误会有所帮助。

Not sure of the exact error you're seeing but I'm sure you can use a ViewBag in-place like that as it is an anonymous object. 不知道您看到的确切错误,但是我确定您可以像这样使用ViewBag,因为它是一个匿名对象。 Assign the ViewBag to a separate variable: 将ViewBag分配给一个单独的变量:

@{
   var genderlist = (SelectList)ViewBag.GenderList;
}

@Html.DropDownList("genderID", genderlist, "Gender", new { @class = "classnameifneeded" })

Personally, I would do it like this: 就个人而言,我会这样做:

Class/C#/Controller Side: 类/ C#/控制器端:

List<Gender> list2 = db.Gender.ToList();
ViewBag.GenderList = list2;

View Side: 侧面:

@{
   var genderlist = ViewBag.GenderList;
}

Html.DropDownList("genderID", new SelectList(genderlist, "GenderID", "GenderType", 0), "Gender", new { @class="classnameifneeded" })

在html上尝试:@ Html.DropDownList(“ GenderList”,null,“ --select--”,htmlAttributes:new {@class =“ form-control”})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM