ASP MVC模型问题

时间:2015-07-30 20:12:01

标签: c# asp.net-mvc entity-framework

我有一个模特:

 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中。

这样做的正确方法是什么?

1 个答案:

答案 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)