繁体   English   中英

ASP.NET MVC - 填充常用的下拉列表

[英]ASP.NET MVC - Populate Commonly Used Dropdownlists

我想知道在ASP.NET MVC中填充常用的下拉列表时最佳做法是什么。 例如,我有一个国家和州选择,在我的应用程序中经常使用。 对于我希望包含这样一个下拉列表的每个视图来说,填充viewmodel并从我的控制器绑定到该viewmodel似乎很脏。

在这种情况下,人们如何填充他们的下拉列表? - 这个烤制的自定义基类? 助手班等?

提前致谢,

J.P

您可以使用RequiresStateList属性将该常用功能注入需要它的操作。

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<ListItem>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM