C#-MVC 4 @ Html.DropDownListFor()未将模型值传递给下拉列表
作者:互联网
我是MVC的新手,正在尝试测试应用程序以弄湿我的脚.此应用程序的一部分是生成带有下拉框的表单.我用
@ Html.DropDownListFor()生成此文件,并在创建表单上正常工作.但是当我进入编辑表单时,模型值不会传递给下拉列表.
选择清单项目
public static string[] OnOffList()
{
var ret = new string[] { "On", "Off" };
return ret;
}
表格代码
@Html.DropDownListFor(model => model.ServiceCondition, new SelectList(OnOffDropDownHelper.OnOffList()))
对于此实例,假定model.ServiceCondition =“ Off”.
由于某种原因,每当我将此表单称为下拉列表值时,其始终为“ On”,则似乎完全忽略了模型值.
我也尝试过
@Html.DropDownListFor(model => model.ServiceCondition, new SelectList(OnOffDropDownHelper.OnOffList(), "Off"))
强制使用“关闭”值,但下拉列表中的选定值仍会显示为“打开”.
我想重申一下,我确实知道模型值是“ Off”,并且我使用相同的@ Html.DropDownListFor()创建了一个相同的“ Create”表单,并且能够将值很好地传递给模型.
就像我说的那样,我是MVC的新手,所以我们将不胜感激.
谢谢.
解决方法:
我认为您必须设置IsSelected属性.这总是对我有用:
首先,只需在模型中放置一个属性即可整理View代码:
public List<SelectListItem> OnOffDDL
{
get
{
return OnOffDropDownHelper.OnOffList()
.Select(s => new SelectListItem
{
Text = s,
Value = s,
Selected = ServiceCondition == s
})
.ToList();
}
}
然后做:
@Html.DropDownListFor(model => model.ServiceCondition, model.OnOffDDL)
标签:razor,asp-net-mvc-4,asp-net,c,asp-net-mvc 来源: https://codeday.me/bug/20191123/2066775.html