asp.net - route - tag helpers asp net core
Modelo en mayúsculas mvc vs modelo en minúsculas (1)
El modelo en realidad representa una instancia de la clase que es su modelo y el modelo es un alias para la expresión lambda.
Cuando escribe @Model
en su vista, está utilizando el objeto de ContractViewModel
que se pasa de la acción del Controlador, si no se pasa de la Vista puede ser nulo y acceder a cualquier propiedad del Modelo puede lanzar una Excepción de Referencia Nula y escribir a los Model.Contractors
básicamente significa ContractViewModel.Contractors
y cuando escribe un ayudante html necesita escribir un alias para él, no es obligatorio escribir un model
, puede escribir cualquier cosa.
por ejemplo:
@Html.DropDownListFor(m=> m.ContractorId, Model.Contractors)
Es solo un alias para acceder a las propiedades del modelo dentro de Html Helper .
Cuando escribe @model Project.Models.ContractViewModel
en la parte superior de View que es una cosa diferente, en este caso estamos definiendo el modelo de vista que tomará la instancia de Project.Models.ContractViewModel
, en realidad nuestra vista ahora está fuertemente tipada. a la instancia de la clase Project.Models.ContractViewModel
.
Estoy trabajando en un proyecto MVC 5, muy nuevo en MVC. Noté esta línea en el código:
@Html.DropDownListFor(model => model.ContractorId, Model.Contractors)
La directiva en la parte superior de la página es:
@model Project.Models.ContractViewModel
La clase ContractViewModel tiene un objeto Contratistas en ella.
public IEnumerable<SelectListItem> Contractors
Estoy un poco confundido en la capital M (Model.Contractors), ¿Model se refiere siempre al objeto pasado en el @model? Entonces, ¿cuál es la diferencia entre usar Model.Contractors y model.Contractors?