asp.net-mvc - 添加为 View 的链接智能感知

标签 asp.net-mvc visual-studio-2015

我尝试使用 VS2015 中的“添加为链接”功能在项目之间共享一些 View ,但链接的 View 在 VS 中显示为损坏,即使它在网站上运行良好。

有没有办法让智能感知和“转到定义”等功能适用于链接 View ?

我可以用新的解决方案/项目重现这个:

  • 将 Home/Index.cshtml 移动到其他文件夹(目前我正在使用解决方案文件夹,但将文件移动到哪里似乎并不重要)
  • 从主页/删除 Index.cshtml
  • 从主页/右键单击并“添加现有项目”
  • 从解决方案文件夹中选择 Index.cshtml,但从下拉按钮中选择“添加为链接”
  • 在链接的 Index.cshtml 上选择属性“复制到输出目录 = 始终复制”

该网站可以正常工作,但在 VS2015 中, View 会出现损坏,并且智能感知不起作用。

这将是跨多个项目共享 View 的好方法,但如果 VS 认为 View 已损坏,那么开发就会变得很痛苦。

有什么建议吗?有没有更好的方法来跨项目分享 View ?

最佳答案

这是我让它发挥作用的痛苦方法:

  1. 卸载解决方案
  2. 创建包含我要复制的 View 的项目之一的副本。我们将新项目命名为 [SharedItems]。
  3. 重命名 .csproj 文件并手动编辑 .csproj 文件,并将旧名称替换为新名称(可能是可选的,但使事情变得更容易)
  4. 加载解决方案并添加新项目。
  5. 删除您不需要的所有文件。
  6. 重命名新项目中的命名空间。
  7. 构建只是为了确保其正常工作并且 Intellisense 正常工作。
  8. 删除原始项目中要链接的文件并创建链接。
  9. 在所有原始项目上安装了 MSBuild.WebApplication.CopyContentLinkedFiles NuGet 包,以自动制作链接文件的物理副本。

现在我可以在模板化项目中进行所有编辑,而无需在各处维护多个副本。

两大缺点:

  • 我必须在编辑任何链接对象后进行构建,然后才能看到更改。
  • 我只需打开 [SharedItems] 项目中的实际 .cshtml 文件。打开链接文件会破坏 Intellisense,直到您关闭它并直接打开它。这对于 Resharper 的 Search Everywhere 功能来说尤其烦人,因为它会建议链接文件。

关于asp.net-mvc - 添加为 View 的链接智能感知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41511770/

相关文章:

c# - 将 MSBuild 参数传递给 Cake 构建脚本以生成 _PublishedWebsites

asp.net-mvc - 使用自定义身份验证提供程序/服务的 ASP.Net 身份

c# - "End of Central Directory record could not be found"- VS 社区 2015 中的 NuGet

c - 在 Visual Studio 中用 C 初始化结构内部的数组

c# - 启用 native 代码调试以深入 COM 对象

javascript - 特定 Web 应用程序 (VS2015) 中没有 javascript intellisense

c# - Api Controller 可以工作,但 web razor Controller 不能使用 owin

javascript - 如何在javascript中检测回发?

asp.net-mvc - 我可以在 MVC3 中为同一个类使用多个编辑器模板吗?

c# - 单元测试未显示为覆盖方法