2008-12-14 2 views
18

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

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

ответ

28

Серверные элементы управления 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

+4

«по крайней мере, пока» - Надеюсь, никогда! – UpTheCreek 2011-01-07 11:44:10

+0

Согласен! Модель MVC просто растет и растет на вас. – 2011-01-10 21:18:17

0

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

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

4

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

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

Возможно, именно по этой причине это сработало.

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