ASP.NET MVC не работает с ViewState и Postback?

Возможно, это наивный вопрос. В моем понимании ASP.NET MVC не может работать с ViewState и Postback, который является основой форм ASP.NET. Это верно?

Если это так, то все ASP.NET Web Controls в зависимости от ViewState & Postback не могут быть использованы в ASP.NET MVC, верно?

14.12.2008 03:49:53
3 ОТВЕТА
РЕШЕНИЕ

Серверные элементы управления ASP.NET работают с WebForms, а не с MVC. MVC не использует элементы управления в традиционном смысле ASP.NET (по крайней мере, пока).

Модель MVC сильно отличается от модели WebForms; не лучше или хуже, но очень разные. Использование MVC значительно приближает разработчика к сгенерированному HTML, делает его более естественным для модульного тестирования и обеспечивает четкое разделение проблем между пользовательским интерфейсом и кодом, который заполняет этот пользовательский интерфейс.

На первый взгляд, особенно для закаленных ветеранов ASP.NET, MVC может показаться огромным шагом назад (если вы программировали тогда, видение разработки ASP COM могло бы танцевать в вашей голове).

Но попробуйте MVC. Это очень интересно, и его модель довольно привлекательна, как только вы привыкнете к нему.

Подробнее читайте здесь: http://quickstarts.asp.net/previews/mvc/mvc_HowToRenderFormUsingHtmlHelpers.htm

Кроме того, проверьте этот интересный движок блога, который использует MVC: http://www.codeplex.com/oxite

Наконец, ознакомьтесь с проектом магазина MVC Роба Конери: http://wekeroad.com/category/mvc-storefront

29
16.10.2012 14:13:00
"по крайней мере пока" - надеюсь, никогда!
UpTheCreek 7.01.2011 11:44:10
Согласовано! Модель MVC просто растет и растет на вас.
rp. 10.01.2011 21:18:17
Модель MVC действительно лучший подход. .net страницы были созданы для разработчиков Windows, чтобы можно было начинать программировать для веба, но на самом деле эта модель плохо подходит для веб-разработки. MVC может показаться шагом назад, но только людям, которые не понимают жизненный цикл веб-страницы. Я рад, что постбэк и viewstate убиты. Не буду скучать по ним.
sarsnake 3.10.2011 20:54:00

Это может вас удивить, но я случайно уронил Button на странице MVC и реализовал событие Click, и это действительно сработало!

Я был удивлен, может быть, это работает только для этого простого случая (это был единственный элемент на странице в то время), и тот факт, что ответ закончился перенаправлением, но в некоторых случаях кажется, что он может работать :)

0
14.12.2008 08:12:48
Не все элементы управления сорваны MVC. Только те, которые требуют тег <form runat = "server"> (т. Е. TextBox, DropDown и т. Д.). Если для этого требуется ViewState, он не будет (не должен) работать в MVC.
chadmyers 14.12.2008 16:19:49
Если он не имеет runat = server, он не используется как элемент управления на стороне сервера!
rp. 14.12.2008 17:48:20

Это может вас удивить, но я случайно уронил Button на странице MVC и реализовал событие Click, и это действительно сработало!

Пожалуйста, исправьте меня, если я ошибаюсь, но я думаю, что ViewState не нужен. Он должен создать простой тег HTML, и если вы не измените свойства кнопки во время выполнения (текст, событие, ...), VIEWSTATE не потребуется.

Может быть, это причина, почему это сработало.

4
10.11.2009 10:16:54