mvc mayúsculas Modelo vs minúsculas

Estoy trabajando en un proyecto de MVC 5, muy nuevo para 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 Contractors en ella.

 public IEnumerable Contractors 

Estoy un poco confundido con la M mayúscula (Modelo.Contractores), ¿el Modelo siempre se refiere al objeto pasado en el @modelo? Entonces, ¿cuál es la diferencia entre usar Model.Contractors y model.Contractors?

El modelo realmente 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 desde la acción Controller, si no se pasa desde View, puede ser nulo y acceder a cualquier propiedad de Model puede arrojar Null Reference Exception y escribir Model.Contractors básicamente significa ContractViewModel.Contractors

y cuando escribes un helper html necesitas escribir un alias, no es obligatorio escribir un model , puedes 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, eso es algo 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 instancia de la clase Project.Models.ContractViewModel .