混合WebForms和MVC:我应该如何处理MasterPage?

时间:2010-08-26 18:03:31

标签: asp.net-mvc-2 webforms mixed-mode

我想开始将WebForms应用程序迁移到MVC。这个过程将是渐进的,因此两个系统必须共存。

问题是:我应该有两个MasterPages,一个用于WebForms页面,另一个用于MVC视图吗?有没有办法只有一个?

1 个答案:

答案 0 :(得分:3)

在ASP.NET MVC中,母版页应该来自System.Web.Mvc.ViewMasterPage而来自System.Web.UI.MasterPage的经典WebForms。如果在MVC中使用后者,则无法访问任何帮助者。虽然您可以在经典网页表单中使用ViewMasterPage,因为它来自MasterPage(您再次无法访问网络表单应用程序中的帮助程序,但是谁会关心)。

所以回答你的问题,是的,你可以有一个共同的主页,假设它来自ViewMasterPage

这就是说你可能无法像在MVC母版页中那样使用HTML帮助器来渲染像Html.RenderPartial这样的部分视图,这在经典的WebForms应用程序中没有多大意义反之亦然在经典的WebForms应用程序中,您可能会使用某些服务器端控件,如<asp:xxx runat="server" />,或者只有form标记(再次使用runat="server")被ViewState污染等等...这在MVC中几乎没有任何意义。所以我的建议是不要这样做。