之前有人问过:Why doesn't Visual Studio code formatting work properly for Razor markup?
但这个问题已有几年了 . Razor格式化仍然是完全不可接受的 . 我放弃了修复它 .
我可以为CSHTML文件禁用所有Visual Studio格式吗?如果没有,我可以完全禁用所有Visual Studio格式吗?我可以使用任何第三方黑客?必须要有东西!
我升级到2013年,格式也一样糟糕 .
[编辑]:2015年也是上帝可怕的 . 我真的希望他们能解决这个问题 .
[编辑]:2017年也是上帝可怕的 . 我真的希望他们能解决这个问题 .
7 回答
你不能 . 自第一个.net版本(visual studio 2002/2003)以来,它就构建在VS的“功能”中 .
有大量关于格式化错误的连接报告,但Microsoft完全忽略它们,或者将修复程序推送到"next version" . 您可以看到Microsoft回答here的示例 .
您可以将自己的反馈发布到Microsoft Team here
在工具 - >选项 - >文本编辑器 - > HTML - >高级
有一个键值项粘贴,上面写着“粘贴时格式化”,旁边有一个布尔值 . 将此更改为false已禁用razor语法中的粘贴格式 .
我正在使用VS Professional 2013,版本12.0.30110.00更新1
要看的地方:
设为 False
设为 False
使用这些设置,我在Visual Studio 2013中没有任何问题 .
我曾经经常按Ctrl-Z,如果你忘记解决乱码,一旦你的代码被编写和测试是一个巨大的痛苦 . 我觉得微软可以做 alot 来帮助用户配置它并使其更易于访问 .
对我来说诀窍是在粘贴后按下CTRL Z,然后删除格式化 .
不幸的是,防止粘贴自动格式化的唯一方法是注释掉要粘贴一些新代码的位置,并在粘贴操作之后删除注释说明 .
搜索和替换似乎不会触发自动格式化 . 但粘贴重新格式化整个代码块 .
这太可怕了 . 它使得Visual Studio IDE几乎无法用于Razor编辑 . 必须为Razor文件使用外部编辑器 .
更糟糕的是,即使最新的Visual Studio 2013 Update 1在编辑Razor视图时也会崩溃 .
在我的情况下,R#最终成为罪魁祸首,可以在这里禁用:
ReSharper>选项>代码编辑> Razor>编辑器和格式
https://www.jetbrains.com/help/resharper/2016.1/Reference__Options__Languages__Razor__Editor.html
有趣的是,您可以禁用C#格式和HTML格式,但不能禁用Razor格式 .
我已取消选中“工具>选项>文本编辑器> C#>格式设置>粘贴时自动格式化”,HTML也是如此 .
这导致了以下cshtml文件的有趣体验:
粘贴HTML代码:无格式
粘贴C#代码:无格式
粘贴剃刀代码:格式化所有错误
由于没有更改Razor选项的选项,我猜你必须忍受这个 .
我的“解决方案”:粘贴和ctrl-z撤消自动格式