Jan*_*ray 6 c# asp.net asp.net-mvc razor asp.net-mvc-3
我正在学习asp.net mvc并发现了一些有趣的东西:
似乎我无法在View中显式定义View Model
,并显示错误消息,表明它没有setter.
@{ this.Model = "Hello" } //error
然后我查看了WebViewPage.cs中的源代码,View的Model属性实际上是这样的:
public object Model {
get {
return ViewData.Model;
}
}
因此错误.
但有趣的是我能做到这一点:@{ ViewData.Model = "hello"; }
并且实际上能够使用该@model
语句,从而导致"你好"
我想我看得太多了,但为什么会这样呢?
C#和ASP.NET初学者
规则是分离关注...在MVC中,控制器向视图提供模型,它始终是控制器,可以将模型设置/分配给视图....视图可以使用...这个是按设计...按照规则玩是我会说的...如果你正在学习MVC它的伟大,我强烈建议你阅读