Я новичок в MVC, так что, возможно, это глупый вопрос - я пытаюсь разобраться в строго типизированных представлениях в asp.net mvc . Работаю над версией 3. Если у меня есть проект с 2 моделями - скажем Person и Department. Человек должен принадлежать к отделу. Итак, у меня есть модель отдела (и я сгенерировал свой контроллер и интерфейс CRUD):
public class Department
{
public int Id { get; set;}
public string DeparmentName { get; set;}
}
Затем у меня есть модель человека, которая ссылается на отдел:
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 код для создания раскрывающегося списка Department -
@Html.DropDownList("Department_Id", String.Empty)
Насколько я понимаю, помощник DropDownList Html - это используя ViewBag для создания раскрывающегося списка. Однако поля ввода FirstName и LastName, похоже, созданы без использования ViewBag, поэтому в моем представлении я могу проверять время компиляции полей FirstName и LastName, потому что мое представление строго типизировано, но не в моем DropDownList.
Есть ли причина, по которой DropDownList для отдела не строго типизирован, или я что-то делаю не так, и есть способ сделать его строго типизированным?
Спасибо :)