我是ASP.NET MVC的新手,所以请耐心等待.
我一直认为MVC(在任何语言中)的想法是视图对模型一无所知,反之亦然,并且控制器是将所有东西保持在一起的粘合剂.
现在,当(在Visual Studio 2013/MVC 5中)我通过Add - > New Scaffolded Item添加一个新控制器时,生成的视图包含第一行
@model IEnumerable
我知道在编写视图时使IntelliSense工作很好,但是视图不应该是不可知/完全忘记模型吗?
它是模型(或视图模型,如果您愿意),它是将所有东西组合在一起的粘合剂.
视图必须知道模型/视图模型,否则视图的设计者可以在表单上放置他们想要的任何字段并将其提交给控制器,而不知道控制器是否可以接受这些值.
最重要的是,model/viewmodel是控制器和视图都理解并用于在它们之间进行通信的契约.