如何在MVC模型中创建静态下拉列表值

Jac*_*ack 0 asp.net-mvc enums model dropdownlistfor

如何为MVC模型中的枚举或列表中的Dropdownlist静态值(不是从数据库中检索)准备模型,以便它可以在项目中多次使用?如果你能发表一篇好文章,我将不胜感激?谢谢.

Dar*_*rov 9

与往常一样,您可以从视图模型开始:

public class MyViewModel
{
    public string SelectedValue { get; set; }
    public IEnumerable<SelectListItem> Values
    {
        get
        {
            return new[]
            {
                new SelectListItem { Value = "1", Text = "Item 1" },
                new SelectListItem { Value = "2", Text = "Item 2" },
                new SelectListItem { Value = "3", Text = "Item 3" },
            };
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后一个控制器:

public ActionResult Index()
{
    var model = new MyViewModel();
    return View(model);
}
Run Code Online (Sandbox Code Playgroud)

最后一个观点:

@model MyViewModel
@Html.DropDownListFor(x => x.SelectedValue, Model.Values)
Run Code Online (Sandbox Code Playgroud)

对于枚举,您可以使用其中的一些帖子来说明自定义助手.这是一篇博客文章,说明了这样的帮助:http://blogs.msdn.com/b/stuartleeks/archive/2010/05/21/asp-net-mvc-creating-a-dropdownlist-helper-for-enums.aspx