2012-11-23 2 views
2

У меня был вопрос, который я искал ответ, и я увидел ответ на этот вопрос вЧто является самым безопасным и чистым способом отправки данных с контроллера для просмотра?

What's the difference between ViewData and ViewBag?

, который в ответ многие люди упомянули, используя ни ViewBag или ViewData не является «безопасным». Я не понимал, почему, поскольку я новичок в веб-приложениях и всей концепции, а также в MVC в целом. Итак, мои вопросы:

  1. Почему ViewBag и ViewData не являются безопасным способом передачи данных?
  2. Каков наилучший способ передачи данных? (Самый важный вопрос)

Я очень ценю вашу помощь!

ответ

1

Альтернативой является строго типизированный объект модели. Некоторые люди предпочитают это, потому что это предотвращает некоторые исключения во время выполнения, которые могут возникать при работе с динамическим объектом ViewBag. Он также позволяет использовать полезные функции IDE, такие как автозаполнение, и, как правило, приводит к созданию более читаемого кода.

Существует хороший blog post from Microsoft's Rick Anderson, который описывает и дает примеры различных вариантов, которые могут оказаться полезными.

Если сильно типизированных вариант выглядит как-то вы хотели бы продолжить этот учебник может быть полезен: http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/accessing-your-models-data-from-a-controller

0

Были дебаты. Я всегда использую конкретные модели просмотра.

Вы также можете использовать ViewBag или ViewData, но не предпочитаете.

ViewData не является безопасным, потому что,

ViewData["foo"] не может быть установлен в контроллере, но вы пытаетесь получить доступ к нему, так что вы будете терпеть неудачу. Таким образом, был введен ViewBag, который использует динамические особенности языка.

So ViewData несколько безопаснее. Однако, поскольку хороший дизайн, создающий View Model Object for view, идеален.

+0

Если ViewBag и ViewData не является предпочтительным, то, что лучше, чем это? Я спрашиваю, так как это единственный способ передачи данных. – moamzia

+0

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

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