首页 文章

在MVC中使用强制视图模型

提问于
浏览
1

我是MVC的新手,我为以下模型创建了Model,View和Controller

public class Student:Basic
{
    public Guid StudentId { get; set; }
    public string Name { get; set; }
    [ForeignKey("SchoolClass")]
    public virtual Guid StudentClassId { get; set; }
    public virtual SchoolClass SchoolClass { get; set; }
}

在视图中我想要一个DropDownList for Class . 但我不确定如何在不使用View-Model的情况下实现它 . 许多解决方案要求我使用SelectList for Class创建一个View-Model,并在Controller中填充Class(获取DB中的所有类),然后在View中使用它 . 这是唯一的选择吗?或者我们可以用任何其他方式填充DropDown吗?

1 回答

  • 1

    没有必要使用模型将选择列表选项传递给视图 . 您可以在Razor中填充您的选择列表:

    @{
       var listItems = new List<SelectListItem>();
       listItems.Add(new SelectListItem
       {
          Text = "Item 1",
          Value = "Item 1"
       });
       listItems.Add(new SelectListItem
       {
          Text = "Item 2",
          Value = "Item 2",
          Selected = true
       });
    }
    
    @Html.DropDownListFor(model => model.MyValue, listItems, "-- Please choose --")
    

    或者你总是可以使用一个返回 List<SelectListItem> 的静态方法的helper类:

    @Html.DropDownListFor(model => model.MyValue, SelectListHelper.GetOptions())
    

相关问题