在使用 MVC 5.1 中的新Html.EnumDropDownListFor
扩展方法时,我遇到了一个问题,即所选值没有根据我传递给控制器操作的路由属性在下拉列表中更新。
看法
@model MemberReconWebDemo.Models.EnvironmentsModel
@{
ViewBag.Title = "Environments";
}
<h2>Environments</h2>
<div class="row">
<div class="col-md-12">
@Html.EnumDropDownListFor(p => p.Environment)
@Model.Environment.ToString()
</div>
</div>
控制器动作
[Route("environments/{environment?}")]
public ActionResult Environments(string environment)
{
Domain.Environment env;
Enum.TryParse(environment, true, out env);
return View(new EnvironmentsModel{Environment = env});
}
如果我导航到没有可选属性的路线,并且我Model.Environment
在控制器操作中将属性设置为静态值,则所选值显示没有问题。
如果我传入一个有效的路由属性值,将其分配给Model.Environment
属性,则下拉菜单不会在呈现时更新为属性值——即使我已经确认该属性确实具有默认枚举值以外的值.