asp.net-mvc – MVC DropDownList SelectedValue不正确显示
发布时间:2020-12-16 00:24:40 所属栏目:asp.Net 来源:网络整理
导读:我尝试搜索,没有找到任何解决问题的东西。我在Razor视图中有一个DropDownList,它不会显示在SelectList中标记为Selected的项目。这是填写列表的控制器代码: var statuses = new SelectList(db.OrderStatuses,"ID","Name",order.Status.ID.ToString());View
我尝试搜索,没有找到任何解决问题的东西。我在Razor视图中有一个DropDownList,它不会显示在SelectList中标记为Selected的项目。这是填写列表的控制器代码:
var statuses = new SelectList(db.OrderStatuses,"ID","Name",order.Status.ID.ToString()); ViewBag.Statuses = statuses; return View(vm); 这是查看代码: <div class="display-label"> Order Status</div> <div class="editor-field"> @Html.DropDownListFor(model => model.StatusID,(SelectList)ViewBag.Statuses) @Html.ValidationMessageFor(model => model.StatusID) </div> 我走过它,即使在视图中它具有正确的SelectedValue,但是DDL始终显示列表中的第一个项目,而不管选择的值如何。任何人都可以指出我做错了什么来让DDL默认为SelectValue? 解决方法
SelectList构造函数(希望能够传递所选值id)的最后一个参数被忽略,因为DropDownListFor Helper使用您作为第一个参数传递的lambda表达式,并使用特定属性的值。
所以这是丑陋的方法: 模型: public class MyModel { public int StatusID { get; set; } } 控制器: public class HomeController : Controller { public ActionResult Index() { // TODO: obviously this comes from your DB,// but I hate showing code on SO that people are // not able to compile and play with because it has // gazzilion of external dependencies var statuses = new SelectList( new[] { new { ID = 1,Name = "status 1" },new { ID = 2,Name = "status 2" },new { ID = 3,Name = "status 3" },new { ID = 4,Name = "status 4" },},"Name" ); ViewBag.Statuses = statuses; var model = new MyModel(); model.StatusID = 3; // preselect the element with ID=3 in the list return View(model); } } 视图: @model MyModel ... @Html.DropDownListFor(model => model.StatusID,(SelectList)ViewBag.Statuses) 这是正确的方式,使用真实的视图模型: 模型 public class MyModel { public int StatusID { get; set; } public IEnumerable<SelectListItem> Statuses { get; set; } } 控制器: public class HomeController : Controller { public ActionResult Index() { // TODO: obviously this comes from your DB,"Name" ); var model = new MyModel(); model.Statuses = statuses; model.StatusID = 3; // preselect the element with ID=3 in the list return View(model); } } 视图: @model MyModel ... @Html.DropDownListFor(model => model.StatusID,Model.Statuses) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 如何在转发器中每行显示x个项目?
- asp.net-mvc – 如何在特定的mvc3控制器/动作中授权用户角色
- asp.net-mvc – 如何在signalR HubClass中使用UrlHelper
- ASP.NET – 如何引用不在app_code中的类
- asp.net – 如何为多行TextBox设置maxlength?
- asp.net-mvc – ASP.NET MVC:返回查询字符串完整的视图
- asp.net – 如何在web.config中设置text / html的默认内容类
- asp.net-mvc – MVC4异步和并行执行
- asp.net – 获取Gridview的Selected行
- asp.net-mvc-3 – MVC3中的富文本区域
推荐文章
站长推荐
- 为什么OutputCache是??ASP.NET MVC中的结果过滤器
- asp.net – 提高gridview的分页性能?
- asp.net-mvc – Visual Studio:您使用什么方法为
- asp.net-mvc-3 – 为什么我的textBoxFor使用我的
- asp.net-mvc – 自定义HtmlHelper呈现文本而不是
- asp.net-mvc – 如何处理MVC中的页面流(特别是as
- asp.net-mvc – 有人解释我Html.DropDown,它是最
- asp.net – Html.RenderAction和Html.Action之间
- asp.net – .NET MVC 3部署包缺少引用
- asp.net – SQL Server集成身份验证模式
热点阅读