Какая разница между главной страницей ASP.NET и главной страницей MVC? И главная страница AJAX в этом отношении?
Основные страницы ASP.NET MVC
Ответ 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 поверх обычных.
Как я уже сказал, это немного догадка, поэтому рекомендуется больше исследований