Asp.net mvc 添加为视图的链接intellisense

Asp.net mvc 添加为视图的链接intellisense,asp.net-mvc,visual-studio-2015,Asp.net Mvc,Visual Studio 2015,我试图通过使用VS2015中的“添加为链接”功能在项目间共享一些视图,但在VS中,链接视图似乎已断开,尽管它在站点上运行良好 有没有办法让intellisense和“转到定义”等功能适用于链接视图? 我可以用一个新的解决方案/项目重现这一点: 将Home/Index.cshtml移到其他文件夹(目前我使用的是解决方案文件夹,但将文件移到哪里似乎无关紧要) 从主页删除Index.cshtml/ 从主页/右键单击并“添加现有项目” 从解决方案文件夹中选择Index.cshtml,但从按钮下拉列表中

我试图通过使用VS2015中的“添加为链接”功能在项目间共享一些视图,但在VS中,链接视图似乎已断开,尽管它在站点上运行良好

有没有办法让intellisense和“转到定义”等功能适用于链接视图?

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

  • 将Home/Index.cshtml移到其他文件夹(目前我使用的是解决方案文件夹,但将文件移到哪里似乎无关紧要)
  • 从主页删除Index.cshtml/
  • 从主页/右键单击并“添加现有项目”
  • 从解决方案文件夹中选择Index.cshtml,但从按钮下拉列表中选择“添加为链接”
  • 在linked Index.cshtml上选择属性“复制到输出目录=始终复制”
该站点可以正常工作,但在VS2015中,视图会出现中断,intellisense无法工作

这将是一种跨多个项目共享视图的好方法,但是如果VS认为视图被破坏了,那么开发将是一种痛苦


有什么建议吗?有没有更好的方式在项目之间共享视图?

以下是我让它工作的痛苦方式:

  • 卸载解决方案
  • 创建包含要复制的视图的其中一个项目的副本。让我们调用新项目[SharedItems]
  • 重命名
    .csproj
    文件,手动编辑
    .csproj
    文件,并用新名称替换旧名称(可能是可选的,但会使操作更简单)
  • 加载解决方案并添加新项目
  • 删除任何不需要的文件
  • 重命名新项目中的名称空间
  • 构建只是为了确保它正常工作,并且Intellisense正常工作
  • 删除要在原始项目中链接的文件并创建链接
  • 在所有原始项目上安装了
    MSBuild.WebApplication.CopyContentLinkedFiles
    NuGet包,以自动制作链接文件的物理副本
  • 现在,我可以在模板化项目中进行所有编辑,而不必到处维护多个副本

    两大缺点:

    • 我必须在对任何链接对象进行编辑后才能查看更改
    • 我只能在[SharedItems]项目中打开实际的.cshtml文件。打开链接文件会中断Intellisense,直到您将其关闭并直接打开。这对于Resharper的“到处搜索”功能尤其恼人,因为它建议链接文件