我有一个模特:
public class MenuItem
{
public int Id { get; set; }
....
[StringLength(50)]
public string PageTemplate { get; set; }
public int MenuId { get; set; }
public Menu Menu { get; set; }
}
注意PageTemplate。我需要以某种方式创建一个列出文件夹中的文件的属性。然后,该属性应该是视图中的选择列表,然后保存在PageTemplate中。
这样做的正确方法是什么?
答案 0 :(得分:1)
在模型中添加:
public IEnumerable<SelectListItem> Templates { get; set; }
在操作方法中,将数据填充到属性:
public ActionResult Create()
{
return View(new MenuItem
{
Templates = _yourFilesList.
.Select(f => new SelectListItem { Text = f.Title })
});
}
[HttpPost]
public ActionResult Create(MenuItem item)
{
var userTemplate=item.PageTemplate; // user's selected item is there
}
最后在视图中添加此
@Html.DropDownListFor(x => x.PageTemplate , Model.Templates)