ASP.NET MVC3, почему раскрывающийся список полагается на панель просмотра даже в строго типизированном представлении

Я новичок в 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 для отдела не строго типизирован, или я что-то делаю не так, и есть способ сделать его строго типизированным?

Спасибо :)

6
задан Rick 16 August 2011 в 08:30
поделиться