如何配置VS2017/Resharper修正MVC Razor视图辅助方法格式化问题?
解决Razor视图中@helper方法的格式化异常问题
我之前在使用VS2017搭配Resharper开发MVC项目时,也碰到过@helper方法被挤到HTML标签后面、缩进混乱的问题,折腾了一番终于找到了解决方案,分享给你:
1. 快速修复当前的格式化异常
想要把你的代码从:
<div> Hello @DisplayText("world!") </div> @helper DisplayText(string text) { <b>@text</b> }
格式化为规范的样式,可以通过调整Resharper的Razor格式化设置来实现:
- 打开Resharper的选项面板:点击顶部菜单栏的
Resharper→Options,或者直接用快捷键Alt+R, O快速打开 - 在左侧导航栏依次展开
Code Editing→Razor→Formatting Style→Line Breaks and Wrapping - 找到**
After elements with content, place @helper on new line**这个选项,勾选它 - 同时检查
Indentation分类下的Indent @helper blocks是否勾选,确保缩进大小和你的项目配置一致(比如4个空格) - 保存设置后,再按下
Ctrl+K, Ctrl+D格式化文档,就能得到你想要的效果:<div> Hello @DisplayText("world!") </div> @helper DisplayText(string text) { <b>@text</b> }
2. 自定义@helper的默认格式化规则
如果想要更细致地调整@helper的格式化风格(比如大括号位置、参数换行、空格规则等),可以在Resharper的Razor设置里进一步配置:
- 还是在
Code Editing→Razor→Formatting Style页面:Braces Layout:可以设置@helper方法的大括号是和声明放在同一行(比如@helper DisplayText(...) {)还是单独换行,根据你的代码风格选择即可Spaces:在这里可以调整@helper参数前后、大括号内外的空格规则,比如是否在括号前后加空格Line Breaks and Wrapping:还能设置当@helper的参数列表过长时是否自动换行,或者@helper内部HTML代码的换行逻辑
- 如果你更倾向于使用VS原生的格式化规则,可以在Resharper选项的
Code Editing→General→Formatting Style里,勾选Use Visual Studio formatting preferences,不过这样会禁用Resharper的一些高级格式化特性,按需选择就好
另外,如果你只是想临时修复某个文件里的局部格式化问题,也可以选中@helper代码块,按下Ctrl+K, Ctrl+F单独格式化选中区域,有时候能快速解决局部的缩进混乱。
内容的提问来源于stack exchange,提问作者Kcoder
相关产品推荐
相关产品推荐

