Ответ 1
Модель фактически представляет экземпляр класса, который является вашей моделью, а модель - псевдонимом для выражения лямбда.
Когда вы пишете @Model
в своем представлении, вы используете объект ContractViewModel
, который передается из действия контроллера, если он не передан из представления, он может быть нулевым и доступ к любому свойству Model может вызывать Исключение Null Reference и запись Model.Contractors
в основном означают ContractViewModel.Contractors
и когда вы пишете html-помощник, вам нужно написать псевдоним для него, его необязательно писать model
, вы можете что-то написать.
например:
@Html.DropDownListFor(m=> m.ContractorId, Model.Contractors)
Это просто псевдоним для доступа к свойствам модели внутри Html Helper.
Когда вы пишете @model Project.Models.ContractViewModel
в верхней части представления, это совсем другое дело, в этом случае мы определяем модель представления, что она примет экземпляр Project.Models.ContractViewModel
, на самом деле наше представление теперь строго типизировано для экземпляра class Project.Models.ContractViewModel
.