Resharper в проекте asp.net core 2 добавляет View в папку Pages

291
12 марта 2018, 23:55

Внимание! Это перевод вопроса ASP.NET Core 2 - ReSharper “Create Razor View” adds new view to Pages folder

В проекте ASP.NET Core 2 при создании нового View в контроллере ReSharper создаёт представление в папке Pages, а не в папке Views (где я обычно храню мои Views ;-) )

В обычном приложении asp.net mvc (не core) ReSharper создаёт view в правильной папке, проблема только с проектами Core / Core 2.

Вопросы:

  • Что в решарпере отвечает за выбор, где создавать view?
  • Как можно поменять это поведение, чтобы view создавались в традиционном месте?
Answer 1

Я думаю, что это баг в решарпере и я подозреваю, что это может быть связано с новым Razor Pages Apps, который выпущен командой .net core 2.

Так что возможно было бы лучше создать issue в багтрекере решарпера.

Однако, я нашёл способ обхода проблемы и вы можете использовать его до тех пор пока JetBrains не выпустит исправление

  1. Установите nuget пакет Jetbrains Annotations.

    Install-Package JetBrains.Annotations
    
  2. Создайте .cs файл в корне вашего проекта asp.net - я назвал его 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")]
    
  3. Пересоберите проект и перезапустите Visual Studio

  4. Когда вы снова откроете решение, R# обнаружит расположение для view. Теперь вы можете создавать view из контекстного меню решарпера привычным способом.

Update от переводчика. Бага похожего в трекере нет, завёл новый.

А нет, есть: RSRP-465732

Исправление бага ожидается в версии 2018.1.

READ ALSO
Подключение общего проекта TFS в другие проекты

Подключение общего проекта TFS в другие проекты

У меня есть 3 проекта в TFS, один это Web Application, второй DLL, третий это Console Application

210
Перерисовка элемента

Перерисовка элемента

Существует проблема обновления элемента на панели типа VariableSizedWrapGridПри добавлении на панель кнопки методом Childer

243
Как получить все экземпляры приложения

Как получить все экземпляры приложения

Гугление не помоглоИнтересует, возможно ли из c# получить созданные экземпляры в текущем приложении

158