19

ASP.NET 母版页和 MVC 母版页有什么区别?那么 AJAX 母版页呢?

4

3 回答 3

16

大多数情况下,它归结为默认控件和继承。

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 控件。

于 2009-01-20T11:22:54.747 回答
3

MVC 中的 ViewMasterPage 只不过是一个母版页,它公开与 ViewPage 相同的帮助器。这使您可以访问 AjaxHelper、HtmlHelper、TempDataDictionary、UrlHelper、ViewContext、ViewData 和 HtmlTextWriter。

与 ViewPage 一样,当您使用 WebFormsViewEngine(默认)时,您应该不惜一切代价抵制任何超载页面生命周期事件的冲动!它们仍然存在,并且它们仍然会运行,因为在页面上仍然调用 ProcessRequest(...)。

您指的是哪个 AJAX 母版页?我不熟悉框架中包含的任何内容......

于 2009-01-17T06:11:50.703 回答
1

作为一个快速的猜测,我不得不说答案是“生命周期”。ASP.NET WebForms、MVC 和 AJAX 都有不同的生命周期,它们会影响需要由母版页控件响应的事件。WebForms 母版页需要响应 Load、DataBind、PreRender、Render 等。MVC 母版页可能(对此不确定)只需要 Render 操作。所有其他事件都是多余的,可以在控制器中找到等效代码。最后,AJAX 母版页需要在正常请求之上处理 AJAX 请求。

正如我所说,这有点猜测,因此建议进行更多研究

于 2009-01-17T03:38:34.037 回答