gpt4 book ai didi

asp.net-mvc-3 - MVC DropDownListFor() 所选项目未选中/所需验证未运行

转载 作者:行者123 更新时间:2023-12-04 01:25:24 24 4
gpt4 key购买 nike

我无法让我的 DropDownList 将所选项目设置为模型中的值。

模型中的字段只是用户名(先生、小姐等)的标题字符串。以下是我目前的代码。

<td>
@{ var list = new List<SelectListItem>(new[] {
new SelectListItem{ Selected = string.IsNullOrEmpty(Model.Title), Text="",Value=""},
new SelectListItem{ Selected = Model.Title.Equals("Mr"), Text="Mr",Value="Mr"},
new SelectListItem{ Selected = Model.Title.Equals("Mrs"), Text="Mrs",Value="Mrs"},
new SelectListItem{ Selected = Model.Title.Equals("Miss"), Text="Miss",Value="Miss"},
new SelectListItem{Selected = Model.Title.Equals("Ms"), Text="Ms",Value="Ms"}
});
}
@Html.DropDownListFor(m=>m.Title, list)
</td>

最佳答案

我在 MVC 3 中遇到了这个问题,结果我设置了 ViewBag.Title 在我的 View 上(使用它作为页面标题)。一旦我将其更改为 ViewBag.PageTitle ,下拉列表代码开始工作:@Html.DropDownListFor(model => model.Title, Model.MySelectList)
这样做的原因是在 MVC 2/3 中,任何 ViewBag/ViewData 属性 同名 因为模型对象中的那些被使用 优先 DropDownListFor() ,因此您需要重命名它们以确保它们不冲突。因为这看起来真的很不稳定,我只是完全停止使用 ViewBag,现在只依赖 View Model 将内容传递到 View 中。

这个问题如此普遍的原因是 ViewBag.Title 在许多介绍性教程和演示代码中使用它来设置 HTML 标题元素,因此不可避免地被采用为“最佳实践”方法。然而,标题是在“用户详细信息” View 的下拉列表中使用的自然模型属性名称。

关于asp.net-mvc-3 - MVC DropDownListFor() 所选项目未选中/所需验证未运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5347037/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com