在ASP.NET MVC 2中实现DropDownList的最佳方法?

Kel*_*sey 12 asp.net asp.net-mvc asp.net-mvc-2 drop-down-menu

我试图了解DropDownList使用DropDownListFor帮助程序在ASP.NET MVC 2 中实现的最佳方法.这是一个多部分的问题.

首先,将列表数据传递给视图的最佳方法是什么?

  1. 使用SelectList包含数据的属性传递模型中的列表
  2. 将列表传递给via ViewData

如何获得空白值DropDownList?我应该在构建它的SelectList时候构建它还是有其他方法告诉助手自动创建一个空值?

最后,如果由于某种原因存在服务器端错误而我需要重新显示屏幕DropDownList,是否需要再次获取列表值以传递到视图模型中?帖子之间没有维护这些数据(至少当我通过我的视图模型传递它时),所以我只是再次获取它(它被缓存).我正确地谈到这个吗?

小智 9

最好的办法是在Controller中创建一个SelectList - 在这里使用我的扩展方法:http: //blog.wekeroad.com/2010/01/20/my-favorite-helpers-for-aspnet-mvc

使用与您的属性名称相同的键将其弹出到ViewData中: ViewData["statusid"]=MySelectList

然后只是使用Html.DropDownFor(x=>x.StatusID),你就完成了.

  • 它实际上没有什么不同 - 使用ViewModel你必须使用ViewData.Model,否则你只需要用密钥来请求它.完全没有区别...... (2认同)