ASP.NET MVC – 填充常用的下拉列表
我想知道在ASP.NET MVC中填充常用的下拉列表时最佳做法是什么。 例如,我有一个国家和州选择,在我的应用程序中经常使用。 对于我希望包含这样一个下拉列表的每个视图,填充viewmodel并从我的控制器绑定到该viewmodel似乎很脏。
在这种情况下,人们如何填充他们的下拉列表? – 这个烤制的自定义基类? 助手class等?
提前致谢,
J.P
您可以使用RequiresStateList
属性将该常用function注入需要它的操作。
public class RequiresStateList : ActionFilterAttribute { public override void OnResultExecuting(ResultExecutingContext filterContext) { filterContext.Controller.ViewData["StateList"] = GetStates(); } }
而你的行动
[RequiresStateList] public ActionResult Index() { return View(); }
现在,您可以在视图中从ViewData获取该列表。
自定义HTML助手是要走的路……
http://www.asp.net/mvc/tutorials/creating-custom-html-helpers-cs
我非常喜欢创建完全匹配(模型化)每个视图的视图模型。 因此,如果您有一个带有状态下拉列表的视图,那么该页面的视图模型将具有ListItem的状态集合。
我不担心拥有状态集合的视图模型。 相反,我会集中逻辑来获取状态,例如:
viewModel.States = StatesHelper.GetStates(); // returns IList