2012-09-19 67 views
8

如果在Visual Studio 2012(使用Ctrl + K + D)中格式化代碼Razor cshtml文件(如果模型是泛型類型),則VS使其全部爲小寫。例如:CSHTML上的Visual Studio 2012代碼格式降低了通用模型類型

@model IEnumerable<Content> 

轉換爲(考慮全部小寫內容):

@model IEnumerable<content> 
格式化後

。這會導致代碼不能編譯。這是一個錯誤還是我錯過了什麼?如何修復?

+1

已提交的錯誤http://aspnetwebstack.codeplex.com/工作項/ 828。只是趕上它。 – lorond

+0

這仍然發生在VS 2013上:雖然設置「HTML - >格式 - >輸入」將保留套管源將仍然無法縮進。 – springy76

回答

11

此問題來自Visual Studio 2012,不會將其識別爲剃鬚刀代碼並將其視爲常規HTML。我相信這是VS 2012的一個錯誤,希望能很快得到解決。作爲一個臨時的解決辦法,你可以這樣做:

  1. 轉到工具 - >選項
  2. 選擇文本編輯器 - > HTML - >格式化
  3. 設置客戶端標籤下拉到「作爲進入」

希望這會有所幫助。

2

如果這是一個新的項目在VS 2012,你需要添加這行代碼在主web.config文件您<appSettings>部分:

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

如果這是一個預先存在的項目,你可能已經在你的web.config有這個關鍵。請確保它是1.0.0.0版本,而不是2.x或1.2.X

此外,還要確保您的項目參考System.Web.WebPages1.0.0.0版本,而不是2.0.0.0

後你做這些改變,你必須再關閉並重新打開Visual Studio 2012!

+0

我給出的最後一個答案更多的是解決真正的問題。 –

+1

如果您使用WebPages 2.0.0.0,該怎麼辦? MVC4? – ysrb

+1

我的下面的其他解決方案應該做的伎倆。您必須將客戶端標籤的格式設置爲輸入。只需記住讓參數小寫以符合CSS標準,因爲Ctrl + K + D不會再自動將它們變成小寫。 –

0

以下爲我工作與的Visual Studio 2012專業版,ASP.NET MVC 5和Microsoft.System.Web.WebPages 3.0

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

但這種方法並沒有馬上工作

起初,克里斯Haddox的解決方案有關webpages:Version

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

沒有爲我工作,我已經有了這個鍵,它被設置爲1.0.0.0。

但自從我使用的Visual Studio 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.

相關問題