【发布时间】:2015-08-16 09:35:36
【问题描述】:
我对 MVC 很陌生,我已经为以下模型创建了模型、视图和控制器
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; }
}
在视图中,我想为 Class 创建一个 DropDownList。但我不确定如何在不使用 View-Model 的情况下实现它。许多解决方案要求我使用 SelectList for Class 创建一个 View-Model,并在 Controller 中填充 Class(获取 DB 中的所有类),然后在 View 中使用它。这是这里唯一的选择吗?或者我们可以用任何其他方式填充 DropDown 吗?
【问题讨论】:
-
您可以将
SelectList分配给ViewBag属性,但建议使用视图模型,它还有许多其他优点 - 请参阅What is ViewModel in MVC? -
在这种情况下,
ViewBag只是视图模型的一部分 ;) - 当然,您也可以 spaghetti code 视图中的所有内容......不是真的: 不要 -
您可以将任何内容传递给强类型视图 - 这意味着您可以直接传递模型。或者您可以通过动态 ViewBag 传递任何内容。然而,这两种方法很快就会变得不切实际,为了解决它们的问题,无论如何你可能都会求助于 ViewModel。
标签: c# asp.net-mvc asp.net-mvc-4