为什么有时无法在模型中检索下拉列表值

时间:2015-01-04 09:25:27

标签: asp.net-mvc-4 html.dropdownlistfor

我有一个使用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,有时它是选定的值。我真的不知道这个问题,需要帮助。谢谢。

1 个答案:

答案 0 :(得分:0)

我找到原因。初始化变量不能与模型ID相同。在这种情况下,只需更改为Html.DropDownListFor(model =&gt; model.Destination,Model.Destinations,Model.Destination1)即可。