1

简单的问题。我一定完全错了,但我认为值得问这个问题。

根据 MVC 中描述的关注点分离,在 View 中访问 ViewData[“Message”] 是否正确?

例如,在控制器中:

ViewData[“Message”] =  “Display this message”;

在视图中我们调用

<%= ViewData[“Message”]  %>

另一种选择(不违反关注点分离)是在视图模型中设置消息。

例如在控制器中:

UserViewModel.Message = “Display this message”

在视图中我们调用

<%@ Page Title="" Language="C#" Inherits="System.Web.Mvc.ViewPage<UserViewModel>" %>
<%= Html.TextBox("Message", Model Message)%>

任何想法都非常感谢。

4

3 回答 3

3

ViewData和的区别在于Model前者是无类型的属性包,后者是强类型的对象。但它们都充当您的“模型” View

于 2010-02-06T20:58:20.933 回答
1

我看不出这些应该有什么不同,除了最后一个是强类型的?您将数据传递给视图,然后让视图完成它的工作。

于 2010-02-06T20:54:27.003 回答
0

对我来说,我认为这三个(ViewData、ViewBag 和 TempData)的概念都违反了 MVC。使用非常方便,但不遵循此处找到的图表。

视图不应该知道控制器正在传递什么。几分钟前我实际上问了同样的问题,然后我找到了这篇文章。

于 2015-12-31T15:08:13.567 回答