为什么有时无法在模型中检索下拉列表值
Why sometime dropdownlist value can not be retrieved in model
我有一个使用在 mvc 模型中设置的 DropDownListFor 的表单。但奇怪的是,它们的当前值有时无法在模型中检索(有时可以)。代码是,
<% 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,有时又是选中的值。我真的不知道这个问题,需要帮助。谢谢。
我找到原因了。初始化变量不能与模型id相同。在这种情况下,只需更改为 Html.DropDownListFor(model => model.Destination, Model.Destinations, Model.Destination1) 即可。
我有一个使用在 mvc 模型中设置的 DropDownListFor 的表单。但奇怪的是,它们的当前值有时无法在模型中检索(有时可以)。代码是,
<% 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,有时又是选中的值。我真的不知道这个问题,需要帮助。谢谢。
我找到原因了。初始化变量不能与模型id相同。在这种情况下,只需更改为 Html.DropDownListFor(model => model.Destination, Model.Destinations, Model.Destination1) 即可。