MVC DropDownList选中的值不起作用

Ruc*_*han 8 c# asp.net-mvc selectlist html.dropdownlistfor asp.net-mvc-5

我正在使用MVC 5.

我有我的ViewBag列表

ViewBag.TitleList = new SelectList((new string[] { "Mr", "Miss", "Ms", "Mrs" }), contact.Title);
//contact.Title has selected value.
Run Code Online (Sandbox Code Playgroud)

然后我尝试将数组转换为 SelectListItem ( to no avail)

在视图上它看起来像

@Html.DropDownListFor(model => model.Title, ViewBag.TitleList as SelectList, "Select")
Run Code Online (Sandbox Code Playgroud)

我也试过了

@Html.DropDownList("Title", ViewBag.TitleList as SelectList, "Select")
Run Code Online (Sandbox Code Playgroud)

列表加载成功但是Selected Value is Not selected.如何解决这个问题?

更新 罪魁祸首是ViewBag.Title匹配我的模型.标题.将我的模型属性重命名为其他内容并且有效.Arrgh!

Zab*_*sky 10

设置Title控制器中属性的值:

ViewBag.TitleList = new SelectList(new string[] { "Mr", "Miss", "Ms", "Mrs" });
viewModel.Title = "Miss"; // Miss will be selected by default
Run Code Online (Sandbox Code Playgroud)

另一个可能的原因(以及基于以下评论的正确原因)ViewData["Title"]是被另一个值覆盖的原因.将Title属性的名称更改为任何其他名称,一切都应该有效.

  • @Ruchan,你是否有机会使用`Title`作为键来设置页面的标题:`ViewBag.Title ="Edit"`?尝试将属性名称更改为任何其他名称. (4认同)