CSHTML上的Visual Studio 2012代码格式化会降低通用模型类型

时间:2012-09-19 08:43:29

标签: razor visual-studio-2012 code-formatting

如果model是泛型类型,则在Visual Studio 2012中使用Ctrl + K + D格式化代码时,VS会使其全部为小写。例如:

@model IEnumerable<Content>

转换为(考虑所有小写内容):

@model IEnumerable<content>
格式化后

。这导致代码无法编译。这是一个错误还是我错过了什么?如何解决?

3 个答案:

答案 0 :(得分:11)

此问题来自Visual Studio 2012,并未将其识别为剃刀代码并将其视为常规HTML。我相信这是VS 2012的一个错误,希望很快得到解决。作为临时修复,您可以这样做:

  1. 转到工具 - &gt; OPTIONS
  2. 选择文字编辑器 - &gt; HTML - &gt;格式化
  3. 将客户端代码下拉列表设置为“已输入”
  4. 希望这有帮助。

答案 1 :(得分:2)

如果这是VS 2012中的新项目,则需要在主<appSettings>文件的web.config部分添加以下代码:

<add key="webpages:Version" value="1.0.0.0"/>

如果这是一个预先存在的项目,您可能已经在web.config中拥有该密钥。确保它适用于版本1.0.0.0而不是2.X或1.2.X

同时确保您对[{1}}的项目引用适用于版本System.Web.WebPages,而不是1.0.0.0

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

答案 2 :(得分:0)

以下内容适用于 Visual Studio Professional 2012,ASP.NET MVC 5和Microsoft.System.Web.WebPages 3.0

<add key="webpages:Version" value="3.0.0.0" />

但此解决方案无法立即生效

首先,Chris Haddox关于webpages:Version的解决方案:

<add key="webpages:Version" value="1.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.0,我将其更改为3.0.0.0,因为我在另一篇文章中读到可能对Microsoft.System正确的内容。 Web.WebPages 3.0和我还有一段时间的格式化错误。

我继续编辑我的.cshtml文件。然后,所有突然格式化开始正常工作。也许是从构建,但我不认为我做了一个构建,但不能确定,我知道我没有重新启动Visual Studio 2012。