我是 MVC 的新手,所以也许这是一个愚蠢的问题 - 我试图了解 asp.net mvc 中的强类型视图。我正在开发版本 3。如果我有一个包含 2 个模型的项目 - 比如说 Person 和 Department。一个人必须属于一个部门。所以我有我的部门模型(并且我已经生成了我的控制器和 CRUD 接口):
public class Department
{
public int Id { get; set;}
public string DeparmentName { get; set;}
}
然后我有一个引用 Department 的 Person 模型:
public class Person
{
public int Id { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
public int Department_Id { get; set; }
[ForeignKey("Department_Id")
public virtual Department Department { get; set;}
}
现在我生成我的控制器和视图。现在,当我查看 PersonController 时,我对 Create 有以下内容:
public ActionResult Create()
{
ViewBag.Department_Id = new SelectList(db.Deparments, "Id", "DepartmentName");
return View();
}
在 Person\Create.cshtml 中,创建部门下拉列表的代码是
@Html.DropDownList("Department_Id", String.Empty)
据我了解,DropDownList Html 助手正在使用 ViewBag 创建我的下拉列表。但是,FirstName 和 LastName 似乎在不依赖 ViewBag 的情况下创建了它们的输入字段 - 所以在我的视图中,我可以在编译时检查我的 FirstName 和 LastName 字段,因为我的视图是强类型的,但不是在我的 DropDownList 上。
部门的 DropDownList 没有强类型,或者我做错了什么并且有办法使它强类型?
谢谢 :)