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

Asp NET shared html component in different solutions

本文关键字:共享 html 组件 解决方案 NET Asp      更新时间:2024-01-29

我有一个常见的asp.net mvc项目。

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

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

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

我以前也有过同样的需求,我就是这样处理的:

移动共享内容

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

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

重要的是要知道这个步骤是可选的,只是它有助于开发人员,因为文件仍然在预期的位置。现在您有了例如:Project1Project2Shared。现在,在Project1中(例如),将您的文件单独添加回。但请遵循以下步骤:

  1. 右键单击要将文件添加到的文件夹
  2. 将鼠标悬停在Add上,然后选择Existing Item
  3. 导航到Shared项目中的文件并选择该文件
  4. 单击"添加"之前,请注意箭头
  5. 单击此项,然后选择Add as Link

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

添加预生成事件

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

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

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

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