Razor CSHTML小写通用模型类型上的Visual Studio 2012代码格式

Razor CSHTML小写通用模型类型上的Visual Studio 2012代码格式,razor,visual-studio-2012,code-formatting,Razor,Visual Studio 2012,Code Formatting,如果模型是泛型类型,则在Visual Studio 2012中格式化Razor cshtml文件时(使用Ctrl+K+D),VS会使其全部为小写。例如: @model IEnumerable<Content> @model IEnumerable 转换为(考虑所有小写内容): @model IEnumerable 格式化后。这会导致代码无法编译。这是虫子还是我遗漏了什么?如何修复它?此问题来自Visual Studio 2012,它没有将其识别为razor代码,而是将其视为常规

如果模型是泛型类型,则在Visual Studio 2012中格式化Razor cshtml文件时(使用Ctrl+K+D),VS会使其全部为小写。例如:

@model IEnumerable<Content>
@model IEnumerable
转换为(考虑所有小写内容):

@model IEnumerable

格式化后。这会导致代码无法编译。这是虫子还是我遗漏了什么?如何修复它?

此问题来自Visual Studio 2012,它没有将其识别为razor代码,而是将其视为常规HTML。我相信这是VS 2012的一个bug,希望很快就能修复。作为临时修复,您可以执行以下操作:

  • 转到工具->选项
  • 选择文本编辑器->HTML->格式
  • 将客户端标签下拉列表设置为“按输入”

  • 希望这有帮助。

    如果这是VS 2012中的一个新项目,您需要在主
    web.config
    文件的
    部分添加这行代码:

    <add key="webpages:Version" value="1.0.0.0"/>
    
    
    
    如果这是一个预先存在的项目,那么您的
    web.config
    中可能已经有了该键。确保它适用于版本
    1.0.0.0
    ,而不是2.X或1.2.X

    还要确保对
    System.Web.WebPages
    的项目引用是针对版本
    1.0.0
    而不是
    2.0.0


    进行这些更改后,您必须关闭并重新打开Visual Studio 2012

    以下内容适用于我在Visual Studio Professional 2012、ASP.NET MVC 5和Microsoft.System.Web.WebPages 3.0中的工作:

    <add key="webpages:Version" value="3.0.0.0" />
    
    对我不起作用,我已经有了这把钥匙,它被设置为1.0.0.0

    但由于我使用的是Visual Studio Professional 2012、ASP.NET MVC 5和Microsoft.System.Web.WebPages 3.0

    这个问题告诉我,我的Web.Config
    webpages:Version
    被设置为
    1.0.0
    ,我把它改为
    3.0.0.0
    ,因为我在另一篇文章中读到了可能适用于Microsoft.System.Web.webpages 3.0的内容,并且我还有一段时间的格式错误


    我继续编辑我的.cshtml文件。然后,所有的格式化突然开始正常工作。可能来自构建,但我不认为我确实进行了构建,但不能确定,我知道我没有重新启动Visual Studio 2012。

    我给出的最后一个答案更像是解决实际问题的拐杖。如果您使用的是网页2.0.0.0怎么办?MVC4?我下面的另一个解决方案应该可以解决这个问题。必须将客户端标记的格式设置为输入的格式。只要记住将参数保持小写,以符合CSS标准,因为Ctrl+K+D将不再自动将它们变为小写。这在VS 2013中仍然会发生:虽然设置“HTML->Formatting->As entered”(HTML->Formatting->As entered)将保留大小写,但源代码仍然会不必要地缩进。
    <add key="webpages:Version" value="3.0.0.0" />
    
    <add key="webpages:Version" value="1.0.0.0"/>