如何更改.ASPX自动格式设置(Visual Studio)

34

在输入位于.aspx文件中的代码时(在这种情况下是MVC视图),Visual Studio会应用两种格式,一种针对常规的html标记结构(可以从工具->选项->文本编辑器->Html中进行控制),另一种则针对<% %>标记内部的内容。

我遇到了第二种自动格式化的两个问题:<% %>内容格式化。

第一个问题是如何添加语句块的换行:

如果我输入以下内容:

<% if(condition) { %>
    ...
<% } %>

它会自动更正为:

<% if(condition) 
   { %>
    ...
<% } %>

尽管这个改正方法对于.cs文件是正确的,但对于标签混杂的.aspx文件来说,我认为第一种方法更易读。有没有一种方法可以关闭这种行为而不影响.cs文件的格式?

其次,每当我写类似以下代码时:

<%=Html.ActionLink("Report","ListItems") %>

我找不到一种自动使其格式化为这样(在适当的位置添加间距)的方法:

<%=Html.ActionLink("Report", "ListItems") %>

在代码中,你通常需要使用 ; 或 } 来表示你已经完成了一行/一段代码,以便 Visual Studio 可以格式化它。是否有一种方式可以为 <%= 类型的表达式提供这个信号?

澄清

这个问题是关于在 <% %> 标签内部格式化代码,而不影响常规 C# 源文件的格式化。第一段中明确说明我完全知道文本编辑器菜单。


好问题。我也觉得这些问题非常烦人。 - Micah
一样,我也安装了Resharper,这并没有帮助解决问题。 - Andrew Bullock
天啊。在旧时代(可能是Visual Studio.NET的第一个版本,我不确定),每次你在设计视图中打开文件时,它都会重新格式化HTML。当我说“重新格式化”时,这包括删除使HTML有效和可访问所需的属性,并添加导致HTML无效的属性。伟大的时代。 - Paul D. Waite
这个有任何更新吗?它让我发疯了! - Jon Kragh
5个回答

4

文本编辑器菜单就是这些,它不能让你做想要的事情。当你在aspx页面上右键点击,选择“格式和验证...”,然后点击“标签特定选项...”按钮,会出现一堆客户端或服务器标记的设置,但不适用于<%-tags。

至于问题的第二部分,Ctrl-E,D 可以对文档进行格式化,但无法插入所需的间距。


2

2

目前我所知道的唯一解决方法是使用正则表达式编写宏,并将它们分配给易于使用的按键组合。我之前回答过一个问题,其中自动格式化会将闭合括号更改为:

<%
     }
     %>

您可以在此处找到答案,包括使用宏的代码


2

您可以在以下菜单中更改自动格式设置:
工具->选项->文本编辑器

例如,您可以在以下位置更改if语句的换行符:
C#
- 格式化
-- 换行符
--- 将控制块的开括号放在新行上

希望这能帮到您。


1
那似乎会影响所有.cs文件的格式,这正是我们想要避免的。我们只想改变标记混乱代码的格式。 - David

-4

如果您从未自定义过自己的环境,建议花一些时间在“工具”>>“选项”对话框中了解。有许多有趣的事情可以做来定制您的环境,以及改变Visual Studio的默认方式。

我尚未尝试在MVC视图上使用新行,因此我并不完全确定它是否有效,但这将是我首先尝试的地方。它在C#文件、后台代码或其他文件中都可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接