ASP.net MVC View的模型与ViewData.Model?

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初学者

NiK*_*NiK 8

规则是分离关注...在MVC中,控制器向视图提供模型,它始终是控制器,可以将模型设置/分配给视图....视图可以使用...这个是按设计...按照规则玩是我会说的...如果你正在学习MVC它的伟大,我强烈建议你阅读

史蒂文斯桑德森MVC书