Нет просмотра состояния или обратной передачи в ASP MVC? - PullRequest
1 голос
/ 30 декабря 2010

Я уже некоторое время изучаю MVC, и я думаю, что в значительной степени понимаю, о чем это все.Но есть одна вещь, которую я пока не понимаю: я продолжаю слышать с MVC, что нет ни состояния просмотра, ни обратной передачи.

Может кто-нибудь объяснить, что это значит, простыми словами?

Ответы [ 2 ]

3 голосов
/ 30 декабря 2010

Попробуйте этот ответ SO, который отвечает на тот же вопрос.

Дополнительная информация после комментария / вопроса:

Веб-формы ASP.Net могут использовать viewstate для хранения состояниясерверных элементов управления на странице и управлять вызовом событий на стороне сервера, таких как нажатие кнопки.Идея состоит в том, чтобы представить модель программирования, аналогичную подходу Win Forms, чтобы облегчить разработчикам Win Forms переход и отключение приложений на основе браузера.Чтобы узнать об этом подробнее, вы должны нажать Google и узнать о жизненном цикле страницы asp.net, который объяснит весь процесс и объяснит, где вписывается обработка viewstate. Вот довольно хорошее объяснение .

ASP.Net MVC - это другая модель программирования, в которой для генерации разметки используются разные механизмы представления, т. Е. Содержимое, которое фактически передается обратно клиенту вашего браузера.В некоторой степени это устраняет большую часть «магии», которую представляют веб-формы, но взамен вы можете создать более стандартную разметку и иметь больший контроль над тем, что будет отображаться клиенту.Если вы изучаете MVC, ознакомьтесь с примером главы NerdDinner, которая является хорошим руководством, а также с музыкальным магазином MVC.Во всем этом хорошие вступления для выполнения MVC.

MVC не использует / не нуждается в viewstate или postback, поскольку это другая модель программирования.Что лучше / более подходит для любого данного проекта - это большая дискуссия, которую я позволю другим провести, поскольку я думаю, что оба имеют свои сильные стороны и могут быть полезны в различных сценариях (хотя я лично в основном использую MVC сейчас ...).Вы правы в том, что все сделано по-другому ... вы не можете просто работать с простым подходом, управляемым событиями, который имитирует веб-формы, но тогда у MVC есть свои сильные стороны, которые вы найдете в бесчисленных публикациях в блоге, сравнивающих веб-формы иMVC.

0 голосов
/ 14 сентября 2016

MVC Нет viewstate и сеанса, но вы можете использовать объект TempData вместо viewstate. в вашем контроллере вы можете связать это TempDate["MyKey"]="My Value", а в следующем запросе вы можете получить значение в действии, например String s=TempData["MyKey"]

...