【发布时间】:2017-05-20 06:16:10
【问题描述】:
我是 ASP.Net MVC 的新手,尝试使用 viewbag 绑定下拉列表并在控制器中访问它,
下面是我的代码
控制器构造函数
public HomeController()
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem { Text="HO", Value="HO" });
list.Add(new SelectListItem { Text = "BIHAR", Value = "BIHAR" });
list.Add(new SelectListItem { Text = "CHHATTISGARH", Value = "CHHATTISGARH" });
list.Add(new SelectListItem { Text = "HARYANA", Value = "HARYANA" });
list.Add(new SelectListItem { Text = "Madhya PRADESH", Value = "Madhya PRADESH" });
list.Add(new SelectListItem { Text = "PUNJAB", Value = "PUNJAB" });
list.Add(new SelectListItem { Text = "RAJASTHAN", Value = "RAJASTHAN" });
list.Add(new SelectListItem { Text = "UTTAR PRADESH (E)", Value = "UTTAR PRADESH (E)" });
list.Add(new SelectListItem { Text = "UTTAR PRADESH (W)", Value = "UTTAR PRADESH (W)" });
list.Add(new SelectListItem { Text = "UTTARAKHAND", Value = "UTTARAKHAND" });
ViewBag.StateList = list;
}
也使用模型
public class BR_Model
{
public string State;
public DateTime date;
}
查看
@Html.DropDownList("StateList", ViewBag.StateList as IEnumerable<SelectListItem>, new { @class = "form-control input-sm" })
想做这样的事情
@Html.DropDownList( here m => m.State , ViewBag.StateList as IEnumerable<SelectListItem>, new { @class = "form-control input-sm" })
但在下拉列表中使用 m=>m.State 时出错 如何让它在控制器中访问它的值
更新: 在模型中声明了一个选择列表并尝试了 DropdownlistFor
@Html.DropDownListFor(m=>m.State,Model.list as IEnumerable<SelectListItem> ,new { @class = "form-control input-sm" })
【问题讨论】:
-
错误是什么?
-
无法将 Lambda 表达式转换为类型“字符串”,因为它不是委托类型
-
你需要使用 DropDownListFor
-
它必须是 @Html.DropDownListFor(m => m.State , ViewBag.StateList as IEnumerable
, new { @class= "form-control input-sm" })跨度> -
Thaks,我学到了一种绑定 DropdownList 的新方法,对初学者来说很好的学习,但我的问题是 - 没有在返回视图中传递模型对象,在传递模型对象后它可以工作。再次感谢您的宝贵时间
标签: c# asp.net-mvc