如何让Visual Studio在视图/页面上执行重构?

Use*_*ser 5 asp.net-mvc refactoring visual-studio

假设我有一个模型和一个显示此模型属性的视图.

public class UserModel
{
    public string UserName { get; set; }
    .................
}
Run Code Online (Sandbox Code Playgroud)

视图中的某个地方......

<%= Model.UserName %>
Run Code Online (Sandbox Code Playgroud)

现在我重命名其中一个属性(比如,UserName => FullUserName),VS将建议执行重构,这意味着对该属性的引用进行项目范围的重命名.除了在视图中,它在代码中的任何地方都能正常工作.

为什么?有一个设置可以在项目构建中编译视图.为什么它不会在那里执行简单的小重构?

有没有办法说服它?

Mik*_*keD 2

ReSharper支持这样的重命名,并且还提供对可选重命名字符串文字的支持。如果您有这样的代码,这很有用:

<asp:Label id="label1" runat="server"
     Text='<%# Container.DataItem("CustomerName") %>
Run Code Online (Sandbox Code Playgroud)

如果您重命名该CustomerName属性,ReSharper 将提示您是否也想更改“CustomerName”字符串。

ReSharper 不是免费的,但它是一个非常强大的工具,它可以做的不仅仅是重构。