我能否让Visual Studio在if语句中将花括号放在同一行上(在HTML中)?

85

在 Visual Studio 中设计 MVC 视图(在 .aspx.ascx 文件中),我经常使用 if 语句。当我自动格式化 (Ctrl+K+D) 时,Visual Studio 会以一种非常丑陋和难以阅读的方式包装大括号:

<% if (Model.UserIsAuthenticated)
    { %>
       (some HTML goes here...)
<% } %>

有没有办法使 Visual Studio 自动格式化成这样:

<% if (Model.UserIsAuthenticated) { %>
       (some HTML goes here...)
<% } %>

还有更好的方法吗?我现在不想使用Razor,但是看起来它可以解决我的问题。我正在使用带有Resharper 5的VS2010,如果这有所帮助。

4个回答

130

工具选项文本编辑器C#格式设置新行 下可以找到每个情况(新方法、控制块等)中打开括号的规则,也许您能在那里找到所需的规则。

图片描述


1
这适用于.cs文件,但我想仅在视图页面中针对C#使用此类型的格式。 - Mike Comstock
1
它在我的View页面上运行正常。我取消选中“对于控制块,在新行上放置开括号”,你也试试看。 - Felix Martinez
11
可以的,它适用于视图文件,但也适用于所有 cs 文件。我试图让它仅适用于视图文件。 - Mike Comstock
7
如果你使用了Resharper,请注意:RESHARPER->选项..->C#->格式化风格->大括号布局,把BSD改为K&R风格。 - macio.Jun
它显示了一个错误:“加载此属性页时发生错误”。我该怎么办,我有VS 2013无限版。 - Pini Cheyni
显示剩余2条评论

11

菜单在VS2019中有所更改。

您可以通过进入
工具选项文本编辑器C#代码样式格式设置新行

Visual Studio 2019中的格式选项


1
感谢您展示了众多的选项。但我仍然不明白为什么VS不能只有一个选项来控制所有这些和整个约定。 - not2qubit

3

扩展至 Fleix Martinez 的答案:

在 Mac 上,使用 2020 Visual Studio,操作如下:

偏好设置 -> 源代码 -> 代码格式化 -> C# 源代码 -> 选择 C# 格式 选项卡

  1. 点击 编辑 enter image description here

  2. 类别 中选择 新行

  3. 取消勾选以下所有选项(根据需要选择): enter image description here


-1

格式化由各个插件处理,对于JS,您可以使用以下设置:

// Defines whether an open brace is put onto a new line for functions or not.
"javascript.format.placeOpenBraceOnNewLineForFunctions": true,

4
软件错了,伙计。这不是 Visual Studio Code。 - ifconfig

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