在VisualStudio代码中格式化Razor文件

在VisualStudio代码中格式化Razor文件,razor,visual-studio-code,Razor,Visual Studio Code,有人有一个很好的解决方案来格式化VSCode中的Razor文件吗?我试着让它与美化vscode和美化。但在这两种情况下,它都无法分辨cshtml文件。我不想将razor更改为html,因为我会失去很多razor特性。您可以将它们作为html文件(文件->首选项->设置)引入,而无需任何第三方扩展名: { "editor.formatOnSave": true, "emmet.includeLanguages": { "razor": "html" }, "files.as

有人有一个很好的解决方案来格式化VSCode中的Razor文件吗?我试着让它与美化vscode和美化。但在这两种情况下,它都无法分辨cshtml文件。我不想将razor更改为html,因为我会失去很多razor特性。

您可以将它们作为html文件(文件->首选项->设置)引入,而无需任何第三方扩展名:

{
  "editor.formatOnSave": true,
  "emmet.includeLanguages": {
    "razor": "html"
  },
  "files.associations": {
    "*.cshtml": "html"
  }
}

更新:Visual Studio代码的
C#v1.17.0版
附加的预览剃刀(cshtml)语言服务,支持C#完成和诊断。

有一个扩展,我们可以通过快捷方式在语言模式之间快速切换:

我对js、html和cshtml使用以下快捷方式:

 {
    "key":"ctrl+k j", 
    "command":"changeLanguageMode.change", 
    "args": {
        "languageId":"javascript"
    }
},  
{
    "key":"ctrl+k h", 
    "command":"changeLanguageMode.change", 
    "args": {
        "languageId":"html"
    }
},  
{
    "key":"ctrl+k k", 
    "command":"changeLanguageMode.change", 
    "args": {
        "languageId":"aspnetcorerazor"
    }
}
要打开
keybindings.json
并添加以下快捷方式:

用CTRL+SHIFT+p打开控制面板,然后选择
首选项:打开键盘快捷键文件


然后使用Ctrl+K、Ctrl+F仅格式化所选内容。

首先:打开.vscode文件夹中的file setting.json,然后添加下一个块:

{
"editor.formatOnSave": true,
"emmet.includeLanguages": {
    "razor": "html"
},
"files.associations": {
    "*.cshtml": "html"
}
有时需要重新启动vscode


最后:在要格式化Ctrl+k、Ctrl+f的文件中,这在一定程度上起作用-Razor代码在自动格式化到一行时会中断,例如:“page”指令要求字符串用双引号括起来在)第页在)模型索引模型我想补充一点,“razor”语言实际上已经改为“aspnetcorerazor”,我知道这是一年前的事了,但我刚刚尝试了VahidN的解决方案,效果很好。我想这可能只是忘记了这篇文章,因为它很容易做到,但如果它对你有用,你应该回去接受他的答案。否则,让他知道为什么它不起作用。在我看来,这是一个比VahidN更好的答案,尽管我只是使用“更改语言模式”来回更改,而不是创建键盘快捷键。对cshtml文件使用html格式仅在需要文档格式时有用,但最好切换回Razor编辑以获得Razor标记支持。令人恼火的是,一年多后仍不支持格式化: