通过模型类传递 DropDownListFor
本文关键字:DropDownListFor 模型 | 更新日期: 2023-09-27 18:36:40
我似乎无法破解如何通过我的模型类传递DropDownListFor
,我只能弄清楚如何使用标准dropdownlist
.我将发布我过去是如何做到
public class NewLogin
{
public string UserRole { get; set; }
public int RoleID { get; set; }
public SelectList RoleList { get; set; }
}
以下是我在 LinQ 语句中获取 DDL 数据的方法,有没有更有效的方法?
public NewLogin PopUserDDL()
{
NewLogin nl = new NewLogin();
using (database db = new database())
{
nl.RoleList = new SelectList(GetRolesForDDL(), "RoleID", "UserRole");
}
return nl;
}
public List<NewLogin> GetRolesForDDL()
{
using (database db = new database())
{
return (from r in db.UserRole
select new NewLogin
{
UserRole = r.Role,
RoleID = r.RoleID
}).ToList();
}
}
在我看来,我
称之为 @Html.DropDownList("lstRoles",(SelectList)ViewBag.RolesList)
我把它传得像
public ActionResult Index(NewLogin newlogin, int lstRoles)
{
}
我已经尝试过下拉菜单并试图让它直接通过模型,但没有任何运气。谢谢
Html.DropDownListFor
要求视图是强类型的。如果你的模型是 NewLogin
类型,你可以这样写:
@model MyNamespace.NewLogin
@Html.DropDownListFor(model => model.RoleID, Model.RoleList)
在发布操作中,系统会在NewLogin
参数中RoleID
选中您。
编辑 :在控制器中,调用操作可以是这样的:
public ActionResult Index()
{
NewLogin newLogin = PopUserDDL();
return View(newLogin);
}
视图Model
属性将包含所需的数据。这是一个比ViewBags
更好的解决方案。