asp.net – mvc大写模型与小写模型

前端之家收集整理的这篇文章主要介绍了asp.net – mvc大写模型与小写模型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在开发一个MVC 5项目,对MVC来说非常新鲜.我在代码中注意到这一行:
@Html.DropDownListFor(model => model.ContractorId,Model.Contractors)

页面顶部的指令是:

@model Project.Models.Contractviewmodel

Contractviewmodel类中有一个Contractors对象.

public IEnumerable<SelectListItem> Contractors

我只是在首都M(Model.Contractors)上有点困惑,模型总是引用@model中传递的对象吗?那么使用Model.Contractors和model.Contractors之间有什么区别?

解决方法

@H_502_17@ 模型实际上表示一个类的实例,它是您的模型,而模型是lambda表达式的别名.

当您在视图中编写@Model时,您正在使用从Controller操作传递的Contractviewmodel对象,如果未从View传递,则可以为null,并访问Model的任何属性都可以抛出Null参考异常并写入Model.Contractors基本上意味着Contractviewmodel.Contractors

当你编写一个html帮助器时,你需要为它写一个别名,它不是强制写模型,你可以写任何东西.

例如:

@Html.DropDownListFor(m=> m.ContractorId,Model.Contractors)

访问Html Helper中的模型属性只是一个别名.

当您在View的顶部写入@model Project.Models.Contractviewmodel是另一回事,在这种情况下,我们定义了将采用Project.Models.Contractviewmodel实例的视图模型,实际上我们的视图现在是强类型的到Project.Models.Contractviewmodel类的实例.

猜你在找的asp.Net相关文章