2010-02-05 3 views
1

Простой вопрос. Я, должно быть, совершенно не прав, но я подумал, что стоит задать этот вопрос.Это действительно нарушает MVC Разделение проблем

Доступен ViewData ["Message"] в поле «Просмотр» в соответствии с разделом проблем, описанных в MVC?

Например, в контроллере:

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

В View мы называем

<%= ViewData[“Message”] %> 

Альтернатива (не нарушает разделение интересов) должно иметь набор сообщений, в модели представления.

Например, в контроллере:

UserViewModel.Message = “Display this message” 

В View мы называем

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

Любые идеи значительно оценили.

ответ

1

Я не вижу, как они должны быть разными, кроме последнего, который строго типизирован? Вы передаете данные вместе с представлением и позволяете виду делать свое дело.

3

Разница между ViewData и Model заключается в том, что первый является нетипизированным имущественным пакетом, а последний является строго типизированным объектом. Но они оба действуют как «модели» для вашего View.

0

Для меня, я думаю, что концепция всех трех (ViewData, ViewBag и TempData) является нарушением MVC. Очень удобно использовать, но не следовать диаграмме found here.

View не должен знать, что происходит с контроллером. Я на самом деле asked the same question just a few minutes ago, а затем я нашел этот пост.

Смежные вопросы