我有一个mvc表单,其中包含一个int,应该映射到下拉列表中显示的文本字符串。
MyViewModel
{
...other fields...
int Level { get; set; }
...other fields...
}
是否可以将RenderAction用于Level字段并从单独的操作生成下拉列表?
我希望这个问题是连贯的,我正在放弃咖啡,我的头脑不在常年。
答案 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)%>