ASP.NET MVC母版页

时间:2009-01-17 02:35:31

标签: asp.net-mvc master-pages asp.net-3.5

ASP.NET Master Page和MVC Master Page之间有什么区别?那个问题的AJAX母版页?

3 个答案:

答案 0 :(得分: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 Master页面还在Form控件中添加了一个ScriptManager控件。
  • MVC Master(取决于版本 - 我指的是Beta)将只有两个ContentPlaceHolder控件(头部和正文)。

“生命周期差异”来自Page / ViewPage,而不是MasterPage / ViewMasterPage控件。

答案 1 :(得分:3)

MVC中的ViewMasterPage只是一个公共与ViewPage相同的帮助程序的母版页。这使您可以访问AjaxHelper,HtmlHelper,TempDataDictionary,UrlHelper,ViewContext,ViewData和HtmlTextWriter。

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

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

答案 2 :(得分:1)

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

正如我所说,这是一个猜测,所以建议进行更多的研究