我试图理解使用DropDownListFor帮助器在ASP.NET MVC 2中实现DropDownList的最佳方式.这是一个多部分的问题.
首先,将列表数据传递给视图的最佳方式是什么?
>使用包含数据的SelectList属性传递模型中的列表
>通过ViewData传递列表
如何在DropDownList中获取空值?当我创建它时,我应该将其构建到SelectList中,还是有其他方法来告诉助手自动创建一个空值?
最后,如果由于某些原因存在服务器端错误,并且我需要使用DropDownList重新显示屏幕,是否需要再次获取列表值以传入视图模型?这个数据在帖子之间没有维护(至少不是当我通过我的视图模型传递它),所以我要再次获取它(它被缓存).我正在这样做吗?
解决方法
您最好的办法是在控制器中创建一个SelectList – 在此使用我的扩展方法:
http://blog.wekeroad.com/2010/01/20/my-favorite-helpers-for-aspnet-mvc
http://blog.wekeroad.com/2010/01/20/my-favorite-helpers-for-aspnet-mvc
使用与您的属性名称相同的键将其转换为ViewData:
计算机[ “statusid”] = MySelectList
然后只需使用Html.DropDownFor(x => x.StatusID),并且你都设置好了.