ASP.NET MVC母版页

19

ASP.NET主页、MVC主页和AJAX主页有什么区别?

3个回答

16

主要问题在于默认控件和继承。

AJAX Master和ASP.NET Master都继承自System.Web.UI.MasterPage,而MVC Master继承自ViewMasterPage。

显然,这些会为您提供略有不同的控件 - 如John Clayton所述,ViewMasterPage公开了Ajax / Html / Url帮助程序等,这些对其他MasterPages不可用。

除此之外,默认控件稍有不同:

  • ASP.NET Master页面将具有默认表单和两个ContentPlaceHolder控件(一个在head中,一个在form中)。
  • AJAX Master页面还在Form控件内添加了ScriptManager控件。
  • MVC Master(根据版本而定 - 我指的是Beta版)只有两个ContentPlaceHolder控件(分别在头部和正文中)。

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


3
在MVC中,ViewMasterPage只是一个公开与ViewPage相同辅助程序的主控页面。这使您可以访问AjaxHelper、HtmlHelper、TempDataDictionary、UrlHelper、ViewContext、ViewData和HtmlTextWriter。
像ViewPage一样,在使用WebFormsViewEngine(默认)时,您应该尽量避免重载页面生命周期事件!它们仍然存在,因为在幕后仍然调用ProcessRequest(...)。
您所指的哪个AJAX主控页面?我不熟悉任何包含在框架中的页面...

1
作为一个快速猜测,我会说答案可能是“生命周期”。ASP.NET WebForms、MVC和AJAX都有不同的生命周期,这将影响主页控件需要响应的事件。WebForms主页需要响应Load、DataBind、PreRender、Render等事件。MVC主页可能(不确定)只需要Render操作。所有其他事件都是多余的,相应的代码将在控制器中找到。最后,AJAX主页需要处理普通请求之外的AJAX请求。
正如我所说,这只是一个猜测,建议进行更多的研究。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接