【问题标题】:use web form master page as master page for ASP.Net MVC views programatically以编程方式将 Web 表单母版页用作 ASP.Net MVC 视图的母版页
【发布时间】:2012-01-23 18:20:43
【问题描述】:

我们有一个正在运行的解决方案,其中包含许多具有相同母版页的 web forms 应用程序,我们为母版页及其控件创建了一个类库项目,并将其作为 dll 在每个 Web 表单应用程序中引用,并以编程方式分配母版页

现在我们将向我们的解决方案添加两个新应用程序,但我们决定使用ASP.Net MVC 3 来构建这些新应用程序。

问题是,我们必须为新应用程序使用相同的母版页,那么如何使用代码为我们的视图设置母版页?

请注意,我们的母版页是一个类库项目。

【问题讨论】:

    标签: .net asp.net-mvc-3 master-pages webforms


    【解决方案1】:

    查看这篇文章以了解有关将 Webforms 与 MVC 混合使用的概述:

    另一个有趣的项目是Zeus,它涉及到混合 Webforms/MVC 解决方案。 它包含在 Web 表单页面上使用 HtmlHelper 和 UrlHelper 的帮助器。

    【讨论】:

    • 感谢精彩的帖子,但它谈论的是 Web 项目中的母版页,而不是类库项目(dll)。
    • 这篇文章讨论了在 ASPX 引擎和 Razor 引擎之间共享母版页。与 ASP.Net MVC 3.0 Razor Engine 项目共享常规 ASP.Net Mater 页面的方法是否相同?
    • @HaBo:我不完全理解你的问题。这些帖子讨论了将 Webforms Masterpage 与 ASP.NET MVC Razor Views 一起使用。
    • 很抱歉让您感到困惑。我现在很清楚。感谢您的信息
    • 我尝试了“将 Razor 页面与 WebForms 母版页一起使用”,它可以工作,但它是一个 .aspx 页面,我的页面是 cshtml(MVC 视图)。如何在 MVC 视图 cshtml 页面中使用 Web 表单母版页(Site.Master)。
    【解决方案2】:

    如果您真的想继续沿 MVC 路线前进,那么您可能应该花一些时间将母版页转换为布局。其他一切都是黑客/解决方法。

    【讨论】:

      【解决方案3】:

      Amir,我在here 上传了一个工作示例。步骤,

      1) 从here 下载并转换了一个示例应用程序。

      2) 在这个解决方案中添加一个MVC 3应用,并添加引用上述解决方案的类库。

      3) 在 MVC 视图中指定 MasterPage(在视图中,MasterPageFile="~/MasterPageDir/MasterPage.master" 或在控制器中返回 View("Index",masterName: MasterPageVirtualPathProvider.MasterPageFileLocation);)。

      4) 将这些行放在 global.asax 中。

      MasterPageVirtualPathProvider vpp = new MasterPageVirtualPathProvider();
      HostingEnvironment.RegisterVirtualPathProvider(vpp);
      

      【讨论】:

      • +1 为您回答,但这取决于VirtualPathProvider。不幸的是,我们的旧项目没有使用它:(。看来我必须将母版页 Html 复制到我的_layout 视图中,并使样式和图像参考生产版本(在线)。
      猜你喜欢
      • 1970-01-01
      • 2020-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-03
      • 2010-10-21
      • 1970-01-01
      • 2010-12-04
      相关资源
      最近更新 更多