ASP.NET MVC не работает с ViewState и Postback? - PullRequest
18 голосов
/ 14 декабря 2008

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

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

Ответы [ 3 ]

28 голосов
/ 14 декабря 2008

Серверные элементы управления 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 голосов
/ 10 ноября 2009

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

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

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

0 голосов
/ 14 декабря 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...