ASP.NET Core 2 - ReSharper"创建Razor视图"为Pages文件夹添加了新视图

Err*_*sen 5 c# asp.net resharper asp.net-core asp.net-core-2.0

我已经开始尝试使用新的ASP.NET Core 2来构建MVC Web App,到目前为止看起来很不错......

除了当我从我的控制器动作创建视图时,ReSharper在Pages文件夹中创建它们,而不是Views文件夹(我通常喜欢保留我的视图 ;-))

resharper创造剃刀视图 在页面文件夹中查看

对于常规ASP.NET Web应用程序(非核心),ReSharper不会这样做,它将视图放在正确的视图文件夹中,因此这看起来与Core/Core 2有关.

什么是resharper用于决定创建视图的位置?

如何更改此行为以便在传统位置创建视图?

Kar*_*ayo 7

我认为这是Resharper中的一个错误,我怀疑它可能与刚刚发布的新Razor Pages Apps .net核心2团队有关.

所以,也许你最好在Reshaper的Bug跟踪系统上填写一个问题.

但是,我设法设置了一个解决方法.我在这里分享这些步骤,以防万一你需要尽快解决这个问题,当JetBrains修复问题时 - 如果它最终是一个问题:) - 你可以删除这个补丁.

  1. 安装Jetbrains Annotations的nuget包.

    Install-Package JetBrains.Annotations
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在asp.net核心项目的根目录上创建一个.cs文件 - 我将其命名为ResharperConfig.cs - 具有以下内容:

    using JetBrains.Annotations;
    
    [assembly: AspMvcMasterLocationFormat("~/Views/{1}/{0}.cshtml")]
    [assembly: AspMvcViewLocationFormat("~/Views/{1}/{0}.cshtml")]
    [assembly: AspMvcPartialViewLocationFormat("~/Views/Shared/{0}.cshtml")]
    [assembly: AspMvcAreaMasterLocationFormat("~/Areas/{2}/Views/{1}/{0}.cshtml")]
    [assembly: AspMvcAreaViewLocationFormat("~/Areas/{2}/Views/{1}/{0}.cshtml")]
    [assembly: AspMvcAreaPartialViewLocationFormat("~/Areas/{2}/Views/Shared/{0}.cshtml")]
    
    Run Code Online (Sandbox Code Playgroud)
  3. 构建您的项目并重新启动VS. (这对我很重要).

  4. 重新打开解决方案时,R#将识别视图的位置.现在,您可以按照您使用的方式创建视图.

Resharper问题

希望这可以帮助!

  • 我们可以在这里疯狂推测:) - 也许在更新之后R#覆盖配置值与正确的配置值 - 但我没有看到这样做有多大好处.无论如何,我很高兴它对你有用. (2认同)