Подтвердить что ты не робот

Основные страницы ASP.NET MVC

Какая разница между главной страницей ASP.NET и главной страницей MVC? И главная страница AJAX в этом отношении?

4b9b3361

Ответ 1

В основном это сводится к элементам управления по умолчанию и наследованию.

Мастер AJAX и ASP.NET Master наследуют от System.Web.UI.MasterPage, а MVC Master наследует ViewMasterPage.

Очевидно, что это дает вам несколько разные элементы управления - как указано John Clayton, ViewMasterPage предоставляет помощники Ajax/Html/Url и т.п., которые недоступны для других мастер-страниц.

Кроме этого, элементы управления по умолчанию немного отличаются:

  • Главная страница ASP.NET будет иметь форму по умолчанию и два элемента управления ContentPlaceHolder (один в голове, один в форме.
  • Страница AJAX Master также добавляет элемент управления ScriptManager внутри элемента управления Form.
  • MVC Master (в зависимости от версии - я имею в виду бета-версию) будет только два элемента управления ContentPlaceHolder (в голове и теле).

"Различия в жизненном цикле" относятся к странице /ViewPage, а не к элементам MasterPage/ViewMasterPage.

Ответ 2

ViewMasterPage в MVC - это не более чем главная страница, которая предоставляет те же самые помощники, что и ViewPage. Это дает вам доступ к AjaxHelper, HtmlHelper, TempDataDictionary, UrlHelper, ViewContext, ViewData и HtmlTextWriter.

Как и ViewPage, когда вы используете WebFormsViewEngine (по умолчанию), вы должны противостоять любому желанию перегрузить события жизненного цикла страницы любой ценой! Они все еще там, и они все равно будут работать, поскольку под капотом ProcessRequest (...) по-прежнему вызывается на странице.

На какой главной странице AJAX вы ссылаетесь? Я не знаком с какими-либо включенными в рамки...

Ответ 3

Как бы то ни было, я должен сказать, что ответ будет "жизненным циклом". ASP.NET WebForms, MVC и AJAX имеют разные жизненные циклы, которые будут влиять на события, на которые должен реагировать элемент управления главной страницы. Странице веб-форм WebForms необходимо будет ответить на Load, DataBind, PreRender, Render и т.д. На главной странице MVC, вероятно, (не уверен в этом) требуется только действие Render. Все остальные события являются излишними, и эквивалентный код будет найден в контроллере. Наконец, главной странице AJAX нужно будет обрабатывать запросы AJAX поверх обычных.

Как я уже сказал, это немного догадка, поэтому рекомендуется больше исследований