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

标签 javascript html css asp.net-mvc visual-studio

我有一个常见的 asp.net mvc 元素。

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

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

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

最佳答案

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

移动您的共享内容

在我的解决方案中,我添加了一个新的 Shared 文件夹并创建了一个 Shared 元素。您不一定要转移到新元素中,我这样做是因为共享元素还包含共享 MVC 逻辑。

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

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

  1. 右键单击要将文件添加到的文件夹
  2. 将鼠标悬停在 Add 上,然后选择 Existing Item
  3. 导航到 Shared 元素中的文件并选择该文件
  4. 在点击“添加”之前,请注意箭头
  5. 单击此按钮,然后选择添加为链接

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

添加预构建事件

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

  1. 右键单击您的元素并选择Properties
  2. 在菜单中选择Build Events
  3. Pre-build 事件命令行 部分输入以下内容:

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

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

关于javascript - Asp NET在不同解决方案中共享html组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28605494/

相关文章:

javascript - 在不同的 div 中分别使用 jQuery 创建动态元素

javascript - 使用 AJAX 或 WebSockets 访问部分响应?

javascript - 文本区域旁边异常显示的行号

javascript - 如何使我的 `TextArea` 内容可见 HTML/Javascript

css - 推特 Bootstrap 移动

html - 使用css3在表格上旋转文本

javascript - 如何将变量的值传递给 JavaScript 中的不同调用?

javascript - 获取一张图像后停止函数

html - 在页面中将标签和输入居中

Javascript-如何在一个简单的链接中实现target=_blank