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之间有什么区别? 解决方法
模型实际上表示一个类的实例,它是您的模型,而模型是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类的实例. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |