Asp.net mvc 3 MVC3下拉列表值未在编辑器模板内填充
我有一个带有下拉菜单的编辑器模板:Asp.net mvc 3 MVC3下拉列表值未在编辑器模板内填充,asp.net-mvc-3,data-binding,drop-down-menu,Asp.net Mvc 3,Data Binding,Drop Down Menu,我有一个带有下拉菜单的编辑器模板: @Html.DropDownListFor(m => m.AdmissionState, new List<SelectListItem>() { new SelectListItem()
@Html.DropDownListFor(m => m.AdmissionState, new List<SelectListItem>()
{
new SelectListItem()
{
Text = "1",
Value = "1"
},
new SelectListItem()
{
Text = "2",
Value = "2"
},
new SelectListItem()
{
Text = "3",
Value = "3"
},
}, "- Select -")
在控制器中,我有以下代码:
profile.Licenses.Add(new AttorneyLicenseModel()
{
AdmissionDate = "06/14/2012",
AdmissionState = "2",
AdmissionNumber = "asd",
});
profile.Licenses.Add(new AttorneyLicenseModel()
{
AdmissionDate = "07/16/2012",
AdmissionState = "5",
AdmissionNumber = "qwe",
});
对于每个许可证,我都会看到包含从模型填充的数据的字段,但对于下拉列表,则不会看到这些字段-默认值已选中。我做错了什么?当然,带值的代码非常简单请尝试以下操作:
@Html.DropDownListFor(
m => m.AdmissionState,
new SelectList(
new[]
{
new { Value = "1", Text = "1" },
new { Value = "2", Text = "2" },
new { Value = "3", Text = "3" },
},
"Value",
"Text",
Model.AdmissionState
),
"- Select -"
)
如果您有兴趣了解为什么我的代码有效而您的代码无效,您可以阅读我昨天对类似问题提供的以下答案:
@Html.DropDownListFor(
m => m.AdmissionState,
new SelectList(
new[]
{
new { Value = "1", Text = "1" },
new { Value = "2", Text = "2" },
new { Value = "3", Text = "3" },
},
"Value",
"Text",
Model.AdmissionState
),
"- Select -"
)