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