【发布时间】:2010-08-27 02:14:35
【问题描述】:
我想开始将 WebForms 应用程序迁移到 MVC。这个过程将是渐进的,因此两个系统必须共存。
问题是:我应该有两个 MasterPage,一个用于 WebForms 页面,另一个用于 MVC 视图?有没有办法只有一个?
【问题讨论】:
标签: asp.net-mvc-2 webforms mixed-mode
我想开始将 WebForms 应用程序迁移到 MVC。这个过程将是渐进的,因此两个系统必须共存。
问题是:我应该有两个 MasterPage,一个用于 WebForms 页面,另一个用于 MVC 视图?有没有办法只有一个?
【问题讨论】:
标签: asp.net-mvc-2 webforms mixed-mode
在 ASP.NET MVC 中,母版页应派生自 System.Web.Mvc.ViewMasterPage,而在经典 WebForms 中应派生自 System.Web.UI.MasterPage。如果在 MVC 中您使用后者,您将无法访问任何帮助程序。虽然您可以在经典 Web 表单中使用 ViewMasterPage,因为它派生自 MasterPage(同样,您将无法访问 Web 表单应用程序中的助手,但谁在乎)。
所以要回答您的问题,是的,假设它源自 ViewMasterPage,您可以拥有一个通用母版页。
话虽如此,您可能无法像在 MVC 母版页中那样进行这项工作,您将使用 HTML 帮助器来呈现部分视图,例如 Html.RenderPartial,这在经典的 WebForms 应用程序中没有多大意义,反之亦然在经典的 WebForms 应用程序中反之亦然,您可能会使用一些服务器端控件,例如 <asp:xxx runat="server" />,或者有一个被 ViewState 污染的 form 标签(同样是 runat="server")……这在 MVC 中几乎没有任何意义。所以我的建议是不要这样做。
【讨论】: