ASP.NET 母版页和 MVC 母版页有什么区别?那么 AJAX 母版页呢?
3 回答
大多数情况下,它归结为默认控件和继承。
AJAX Master 和 ASP.NET Master 都继承自 System.Web.UI.MasterPage,而 MVC Master 继承自 ViewMasterPage。
显然,这些为您提供了稍微不同的控制 - 正如John Clayton所述,ViewMasterPage 公开了 Ajax/Html/Url 帮助程序等,这些对其他 MasterPages 不可用。
除此之外,默认控件略有不同:
- ASP.NET 母版页将具有默认的 Form 和两个 ContentPlaceHolder 控件(一个在头部,一个在窗体中。
- AJAX 母版页还在 Form 控件内添加了一个 ScriptManager 控件。
- MVC Master(取决于版本 - 我指的是 Beta)将只有两个 ContentPlaceHolder 控件(在头部和身体中)。
“生命周期差异”来自 Page/ViewPage,而不是 MasterPage/ViewMasterPage 控件。
MVC 中的 ViewMasterPage 只不过是一个母版页,它公开与 ViewPage 相同的帮助器。这使您可以访问 AjaxHelper、HtmlHelper、TempDataDictionary、UrlHelper、ViewContext、ViewData 和 HtmlTextWriter。
与 ViewPage 一样,当您使用 WebFormsViewEngine(默认)时,您应该不惜一切代价抵制任何超载页面生命周期事件的冲动!它们仍然存在,并且它们仍然会运行,因为在页面上仍然调用 ProcessRequest(...)。
您指的是哪个 AJAX 母版页?我不熟悉框架中包含的任何内容......
作为一个快速的猜测,我不得不说答案是“生命周期”。ASP.NET WebForms、MVC 和 AJAX 都有不同的生命周期,它们会影响需要由母版页控件响应的事件。WebForms 母版页需要响应 Load、DataBind、PreRender、Render 等。MVC 母版页可能(对此不确定)只需要 Render 操作。所有其他事件都是多余的,可以在控制器中找到等效代码。最后,AJAX 母版页需要在正常请求之上处理 AJAX 请求。
正如我所说,这有点猜测,因此建议进行更多研究