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

标签 c# asp.net asp.net-mvc asp.net-mvc-3 razor

我正在学习 asp.net mvc 并发现了一些有趣的东西:

似乎我无法从 View 中显式定义 View 的 Model,并显示错误消息说它没有 setter。

@{ this.Model = "Hello"}//错误

然后我查看了WebViewPage.cs中的源码,一个View的Model属性其实是这样的:

公共(public)对象模型{ 得到 { 返回 View 数据模型; } }

因此错误。

但有趣的是我如何做到这一点:@{ ViewData.Model = "hello"; } 并且实际上能够使用 @model 语句,导致“你好”

我觉得我看的太多了,但为什么会这样呢?

C# 和 ASP.NET 初学者

最佳答案

规则是关注点分离......在 MVC 中, Controller 为 View 提供模型, Controller 始终可以将模型设置/分配给 View ...... View 可以使用。 ..这是设计使然...我会说按规则行事...如果您正在学习 MVC,它很棒,我强烈建议您阅读

Stevens Sandersons MVC book

关于c# - ASP.net MVC View 的模型与 ViewData.Model?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9917211/

相关文章:

angularjs - 使用自动 ng-bind 创建 ASP MVC 自定义 View

c# - Prism 6 中的 ViewModelLocator 不工作

c# - "ignoring"P/Invoke 在 Mono 上运行时

c# - 你调用的对象是空的

asp.net - 引用错误 : WebForm_AutoFocus is not defined

javascript - 链接按钮在 Google Chrome 中不起作用

c# - 在 Getter Setter 中使用 Session 时发生堆栈溢出异常

c# - Json.Net 和 Monotouch 编译

asp.net - 无法发送带有加号的电子邮件(来自 System.Net.Mail 的 SmtpClient.Send() 方法)

jquery - mvc 和 jquery - 模型是否被排除在外?