如何在 ASP.NET MVC 中的 2 个不同项目/应用程序之间共享母版页?

Posted

技术标签:

【中文标题】如何在 ASP.NET MVC 中的 2 个不同项目/应用程序之间共享母版页?【英文标题】:How can you share a master page between 2 different projects/apps in ASP.NET MVC? 【发布时间】:2010-06-18 19:50:00 【问题描述】:

有没有办法在不同的 MVC 项目/应用程序之间共享母版页?

我们有几个不同的应用程序,并希望这些应用程序在网页上共享类似的页眉和页脚。

用 ASP.NET MVC 处理这种情况的最佳方法是什么?

【问题讨论】:

【参考方案1】:

我不相信你可以共享母版页,但我用 MVC 做了类似的事情。

我有一个网站项目和一个管理项目,都是 MVC 2 应用程序。我有两个项目的母版页。然后我在 web.config 中创建一个“ResourceURL”应用设置。从那里我用该配置条目为所有“资源”资产添加前缀。现在,我将所有 Web 文件(如 CSS、脚本、图像等)存储在他的网站项目中,并从两个项目中引用它们。

这也可以很好地实现 CDN 集成。

【讨论】:

您能否进一步解释一下。这里的描述有点模糊,我不太明白你在做什么。【参考方案2】:

没有一些技巧,你是做不到的。正如@MedicineMan 所提到的,解决方法在一定程度上取决于您的源代码控制系统。

解决此问题的一种方法是向您的项目添加构建前和/或构建后步骤,这会将文件的一个版本复制到其他项目中。您需要将主文件作为项目包含在项目中,并且某些版本系统客户端会希望包含该文件的副本。

【讨论】:

【参考方案3】:

要做到这一点,您是否还需要共享 CSS、图像和脚本?您是否在解决方案或项目之间共享它们?

听起来像是要回答这个问题,您还需要回答以下问题:如何在 2 个不同的解决方案/项目之间共享文件。我认为这个答案在某种程度上取决于您使用的是哪种版本控制系统。

【讨论】:

CSS、图像和脚本也是问题的一部分。我在经典 ASP 上工作了太多年,我会使用共享文件夹来存储图像和脚本等内容,然后为页眉和页脚创建一个包含文件。但我不确定用 MVC 做到这一点的干净方法。我们正在使用颠覆来控制我们的 .net 项目。

以上是关于如何在 ASP.NET MVC 中的 2 个不同项目/应用程序之间共享母版页?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 ASP.NET MVC 3 razor ViewStart 文件中指定不同的布局?

ASP.NET MVC 2 - 组织

如何在 ASP.NET MVC 4 中的两个完全不同的视图之间保留数据?

如何在 C# 中为枚举值添加描述以与 ASP.NET MVC 中的下拉列表一起使用? [复制]

在 ASP.Net MVC 的视图中使用 2 个表(使用不同的模型返回 2 个 LINQ?)

如何在 ASP.NET MVC 中的控制器之外生成 URL?