【问题标题】:Mixing WebForms and MVC: What should I do with the MasterPage?混合使用 WebForms 和 MVC:我应该如何处理 MasterPage?
【发布时间】:2010-08-27 02:14:35
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    在 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 中几乎没有任何意义。所以我的建议是不要这样做。

    【讨论】:

    • 那么,您的建议是拥有两个 MasterPages? (这没什么大不了的,因为它不经常改变)
    • 是的,这是我的建议。在某些情况下,复制比尝试大量重复使用并最终得到克隆更好(大自然创造了不同的物种,尝试将它们混合可能会导致意想不到的结果:-))。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 1970-01-01
    • 2015-11-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多