以下代码有什么问题?
@Html.DropDownListFor(model => model.title, new List<SelectListItem>
{
new SelectListItem { Text = "Other" , Value = "Other"},
new SelectListItem { Text = "Mr", Value = "Mr" },
new SelectListItem { Text = "Mrs", Value = "Mrs" },
new SelectListItem { Text = "Ms", Value = "Ms" },
new SelectListItem { Text = "Miss", Value = "Miss" }
},
new { @class = "form-control" })
上面允许我选择值并将其保存到表中,但是当进行编辑时,未选择保存的值
例如现有数据在编辑时以“先生”保存,显示“其他”
为什么?
SelectList
和 此重载:
@Html.DropDownListFor(model => model.title, new SelectList(new List<SelectListItem>
{
new SelectListItem { Text = "Other" , Value = "Other"},
new SelectListItem { Text = "Mr", Value = "Mr" },
new SelectListItem { Text = "Mrs", Value = "Mrs" },
new SelectListItem { Text = "Ms", Value = "Ms" },
new SelectListItem { Text = "Miss", Value = "Miss" }
},
"Value",
"Text",
Model.Title),
new { @class = "form-control" })
SelectList 构造函数(IEnumerable、String、String、String、Object)
public SelectList(
IEnumerable items,
string dataValueField,
string dataTextField,
string dataGroupField,
Object selectedValue
)
这是最糟糕的
它正在从事这一事业,但不适用于上述事业
@Html.DropDownListFor(model => model.PreferredContact, new List<SelectListItem>
{
new SelectListItem { Text = "Other" },
new SelectListItem { Text = "Telephone", Value = "Telephone" } ,
new SelectListItem { Text = "Email", Value = "Email" },
new SelectListItem { Text = "Post", Value = "Post" }
}, new { @class = "form-control" })
好的
我发现了问题
您不能将“头衔”作为名称。 title 是 HTML5 上的一个属性。我将该字段重命名为 dTitle 并且它有效
为什么不创建一个 Enum ?它比这个干净得多。您会在视图上看到一个包含 3 行代码的下拉列表。