我非常沮丧,试图在几年的webforms开发之后切换到MVC。DataBinding ASP.NET MVC中的DropDownList 2
这是我无法解决的极其简单的问题: 我有一张名为StateProvince的表中的状态列表。 我有一个DropDownList。 我想让DropDownList显示所有的状态。
保持简单,我对MVC一无所知。
这是我的。所有这些给了我一个填充“System.Web.Mvc.SelectListItem”的DropDownList。
操作:
public ActionResult Create()
{
var dbTimecard = new TimecardDbDataContext();
IEnumerable<SelectListItem> stateProvinces = dbTimecard.StateProvinces.Select(p => new SelectListItem
{
Value = p.StateProvinceId.ToString(),
Text = p.Name
});
SelectList theList = new SelectList(stateProvinces);
ViewData["StateProvince"] = theList;
return View();
}
查看:
<div class="editor-label">
<%: Html.LabelFor(model => model.StateProvinceId) %>
</div>
<div class="editor-field">
<%: Html.DropDownListFor(model => model.StateProvinceId, (SelectList)ViewData["StateProvince"])%>
<%: Html.ValidationMessageFor(model => model.StateProvinceId) %>
</div>
是Model.StateProvinces实际上填充了对象AND StateProvinceId包含一个非空值AND模型!= null? – Michel 2010-04-15 20:11:03
你可以展示这个动作吗? – 2010-04-15 20:12:30
好吧我假设创建是你的GET ...哪里是处理帖子和返回结果的代码?这就是我认为问题出在哪里,并且ViewData不会在通话之间持续存在,但我可能完全误解了这个问题。问题是初始加载还是在发布结果并重建视图之后? – Kelsey 2010-04-15 20:52:45