Asp NET 在不同解决方案中共享 html 组件

Asp NET shared html component in different solutions

我有共同的 asp.net mvc 项目。

我有一个包含车把模板、javascript 模块和样式表的模块。 该模块用于不同的页面并放置在 div 标记内的某个位置。

新要求是将此模块用于其他解决方案。但我不想只复制并粘贴与模块相关的所有文件(js、html、css),因为很难将其维护到不同的解决方案中。

所以,我的问题是我应该以什么方式组织这个模块,使其只声明一次并用于不同的解决方案。

我之前也遇到过同样的需求,我是这样处理的:

移动您的共享内容

在我的解决方案中,我添加了一个新的 Shared 文件夹并创建了一个 Shared 项目。你不一定要进入一个新项目,我这样做是因为共享项目还包括共享 MVC 逻辑。

将链接的共享文件添加到解决方案

重要的是要知道此步骤是可选的,它只是帮助开发人员,因为文件仍在预期的位置。现在您有例如:Project1Project2Shared。现在在 Project1(例如)中,分别添加您的文件。但请按照以下步骤操作:

  1. 右键单击要将文件添加到的文件夹
  2. 将鼠标悬停在 Add 然后 select Existing Item
  3. 导航到 Shared 项目中的文件和 select 文件
  4. 点击“添加”之前,请注意箭头
  5. 点击这个,select Add as Link

这样做的好处是,当您在 Project2 中单击解决方案资源管理器中的文件时,它将打开 Shared 中的文件。

添加构建前事件

在每个使用 Shared 文件的项目中,您需要添加 Pre Build Events。目前,尽管该项目包含对共享文件的引用,但当您 运行 项目时它实际上不会执行任何操作。解决方案是构建事件:

  1. 右键单击您的项目并 select Properties
  2. Select Build Events 在菜单中
  3. Pre-build event command line 部分输入以下内容:

    xcopy /R /E /Y "$(SolutionDir)SharedProject\Scripts" "$(ProjectDir)Scripts"

解释一下:这将复制您共享项目中脚本目录的内容,并将其添加到(或替换)您当前项目的脚本目录中。您需要为每个文件夹添加一行(例如 HTML、CSS 等)