【发布时间】:2014-09-18 20:44:07
【问题描述】:
我有一个绑定到模型成员的 DropDownListFor 以及一个可供选择的项目列表。与该成员的绑定有效,但我似乎无法弄清楚页面加载时如何显示模型的当前值。
查看
@Html.DropDownListFor(model => model.MethodofPayment, (List<SelectListItem>)ViewBag.statuses)
控制
List<SelectListItem> statuses = new List<SelectListItem>();
statuses.Add(new SelectListItem { Text = "Approved", Value = "Approved" });
statuses.Add(new SelectListItem { Text = "Declined", Value = "Declined" });
statuses.Add(new SelectListItem { Text = "Pending", Value = "Pending" });
ViewBag.ClaimStatus = statuses;
添加 optionLabel 参数不起作用并返回 null 值,并且传入 SelectListItem 作为 optionLabel 参数也不起作用。
@Html.DropDownListFor(model => model.MethodofPayment, (List<SelectListItem>)ViewBag.methodofpayment, model.MethodOfPayment)
如果他们不更改列表项,我希望页面提交相同的值。
编辑:
谢谢各位,应该是名字冲突。
我有点搞砸了我的问题,因为我有两个下拉列表,我一定是复制了错误的。
更改后的代码:
控制器:
List<SelectListItem> statuses = new List<SelectListItem>();
statuses.Add(new SelectListItem { Text = "Approved", Value = "Approved" });
statuses.Add(new SelectListItem { Text = "Declined", Value = "Declined" });
statuses.Add(new SelectListItem { Text = "Pending", Value = "Pending" });
ViewBag.ClaimStatuses = statuses;
查看:
@Html.DropDownListFor(model => model.ClaimStatus, (List<SelectListItem>)ViewBag.ClaimStatuses)
把它改成复数就可以了。
【问题讨论】:
-
您是在模型绑定到视图之前在模型中设置
MethodofPayment的值还是为空?
标签: c# asp.net asp.net-mvc razor