Работает ли рефакторинг переименования для кого-либо в строго типизированных представлениях razor?

#asp.net-mvc #visual-studio-2010 #razor #refactoring #strongly-typed-view

#asp.net-mvc #visual-studio-2010 #razor #рефакторинг #strongly-typed-view

Вопрос:

У меня есть модель, которая выглядит следующим образом:

 public class Person
{
     public string PostalCode {get;set;}
}
  

Тогда у меня есть представление razor

 @model MvcApp1.Person

Your location is: @Model.PostalCode
  

Когда я использую рефакторинг переименования Visual Studio 2010 (Ctrl R, R), свойство переименовывается в классе модели, но остается неизменным в представлении.

Я понимаю, что, поскольку представление строго типизировано, переименование также должно было произойти в представлении.

Что я делаю не так?

Комментарии:

1. В соответствующем примечании представления поддерживают IntelliSense, но они не компилируются. Нет ничего, что могло бы обеспечить «строго типизированный» характер представлений, кроме некоторой причудливой подсветки.

2. как указал iaimtomisbe, есть способ включить компиляцию представлений: <MvcBuildViews> true</MvcBuildViews> , но было бы здорово увидеть, что рефакторинги тоже работают..

3. @OlegD. — я думаю, это действительно должно быть в принятом ответе… Я почти замалчивал это, но он проходит 90% пути (по крайней мере, с гарантией)

Ответ №1:

Механизм рефакторинга VS не поддерживает Razor.

Комментарии:

1. как насчет проверки представления во время компиляции? поскольку после рефакторинга свойство PostalCode отсутствует, есть ли способ получить ошибку компилятора?

2. @Oleg Да, в файле вашего проекта измените <MvcBuildViews>false</MvcBuildViews> на <MvcBuildViews> true</MvcBuildViews>

3. Покажите свою поддержку этой функции здесь: visualstudio.uservoice.com/forums/121579-visual-studio /…

4. Все еще не поддерживается в Visual Studio 2015, но resharper поддерживает его