RenderAction生成下拉列表?

时间:2011-04-20 12:36:50

标签: asp.net-mvc model-view-controller renderaction

我有一个mvc表单,其中包含一个int,应该映射到下拉列表中显示的文本字符串。

MyViewModel
{
    ...other fields...
    int Level { get; set; }
    ...other fields...
}

是否可以将RenderAction用于Level字段并从单独的操作生成下拉列表?

我希望这个问题是连贯的,我正在放弃咖啡,我的头脑不在常年。

1 个答案:

答案 0 :(得分:1)

虽然很多人会建议(这样做)不要这样做,但如果你坚持要做的话可以做点什么

public VMDropDown
{
     IEnumerable<SelectListItem> Items{get;set;}
     public string InputName{get;set;}
}

如果您想重复使用此下拉列表,则可以接受其html名称属性作为操作方法参数

public ActionResult(string inputName)
{
    VMDropDown model = new VMDropDown();
    model.InpuName = inputName;
    model.Items = //populate Text and Value property of each SelectListItem from db
    return View(model);

}
在您的视图中,您可以编写类似

的内容
<:Html.Dropdown(Model.InputName, Model.Items)%>