Это действительно нарушает разделение проблем MVC? - PullRequest
1 голос
/ 05 февраля 2010

Простой вопрос. Должно быть, я ошибаюсь, но я подумал, стоит задать этот вопрос.

Является ли доступ к ViewData [«Message»] в представлении правильным в соответствии с разделением интересов, описанным в MVC?

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

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)%>

Любые идеи с благодарностью.

Ответы [ 3 ]

3 голосов
/ 06 февраля 2010

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

1 голос
/ 06 февраля 2010

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

0 голосов
/ 31 декабря 2015

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

Представление не должно знать, что передает контроллер. Я на самом деле задал тот же вопрос всего несколько минут назад , а потом нашел этот пост.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...