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

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

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


person Morgan Cheng    schedule 14.12.2008    source источник


Ответы (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

person rp.    schedule 14.12.2008
comment
по крайней мере, пока - Надеюсь, никогда! - person UpTheCreek; 07.01.2011
comment
Согласованный! Модель MVC просто растет и растет вместе с вами. - person rp.; 11.01.2011
comment
Модель mvc - действительно лучший подход. Страницы .net были созданы для разработчиков Windows, чтобы можно было начать кодирование для Интернета, но на самом деле эта модель плохо подходит для веб-разработки. MVC может показаться шагом назад, но только для людей, которые не понимают жизненный цикл веб-страницы. Я рад, что postback и viewstate убиты. Не пропущу их. - person sarsnake; 04.10.2011

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

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

Может, поэтому это сработало.

person Community    schedule 10.11.2009

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

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

person leppie    schedule 14.12.2008
comment
Не всем элементам управления мешает MVC. Только те, которые требуют тега ‹form runat = server› (например, TextBox, DropDown и т. Д.). Если для этого требуется ViewState, он не будет (не должен) работать в MVC. - person chadmyers; 14.12.2008
comment
Если у него нет runat = server, он не используется в качестве элемента управления на стороне сервера! - person rp.; 14.12.2008