我有一个使用DropDownListFor的表单,它在mvc模型中设置。但奇怪的是,它们的当前价值有时无法在模型中检索(有时它们可以)。代码是,
<% using (Html.BeginForm("EditPageSubmit", "Home", FormMethod.Post))
{
<%: Html.DropDownListFor(model => model.Destination, Model.Destinations, Model.Destination)%>
...
model.Destinations= (from r in this._repository.Destinations
select new SelectListItem
{
Text = r.Name,
Value = SqlFunctions.StringConvert((double)r.DestinationID),
Selected = false
});
Model.Destination = "...";
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult EditPageSubmit(FormCollection collection)
{
var updatedModel = new SalesViewModel();
if (TryUpdateModel(updatedModel))
...
}
奇怪的是,有时(通常当dropdownlist没有更改并保持初始值时),updatedModel.Destination为null,有时它是选定的值。我真的不知道这个问题,需要帮助。谢谢。
答案 0 :(得分:0)
我找到原因。初始化变量不能与模型ID相同。在这种情况下,只需更改为Html.DropDownListFor(model =&gt; model.Destination,Model.Destinations,Model.Destination1)即可。