这是否真的违反了MVC Separation of Concerns

时间:2010-02-05 03:26:33

标签: asp.net-mvc separation-of-concerns

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

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

例如,在Controller中:

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

在View中我们调用

<%= ViewData[“Message”]  %>

备选方案(不违反分离关注)是在视图模型中设置消息。

例如在Controller中:

UserViewModel.Message = “Display this message”

在View中我们调用

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

任何想法都非常感激。

3 个答案:

答案 0 :(得分:3)

ViewDataModel之间的区别在于前者是无类型属性包,后者是强类型对象。但它们都是View的“模型”。

答案 1 :(得分:1)

我不知道这些应该如何区别,除了最后一个强类型?您将数据传递给视图,让视图完成它。

答案 2 :(得分:0)

对我而言,我认为所有三个(ViewData,ViewBag和TempData)的概念都违反了MVC。使用非常方便,但不遵循图found here

View不应该知道Controller传递的内容。我实际上asked the same question just a few minutes ago然后我发现了这篇文章。