Asp.net
else 和 { 之間的註釋
我剛開始使用 Razor 而不是 WebForms-ViewEngine。現在在我的 Razor-View 中,我有這樣的東西:
@{ int i = 42; string text; if (i == 42) { text = "i is 42!"; } else //i is not 42 //<- Error here { text = "i is something else"; } }我收到警告,在執行時它在 else 行中出現異常:
應為“{”,但找到了“/”。塊語句必須包含在“{”和“}”中。您不能在 CSHTML 頁面中使用單語句控制流語句。
顯然編譯器不喜歡 else 和 { 之間的註釋。我還嘗試使用 @* 和 /* 進行評論,這給出了類似的錯誤消息。
反正有沒有像我想要的那樣在剃刀上發表評論?
免責聲明:
是的,我知道我可以像這樣簡單地修復它:
@{ int i = 42; string text; if (i == 42) { text = "i is 42!"; } else { //i is not 42 text = "i is something else"; } }但是,它不符合我們的編碼指南,並且在同一行添加註釋使我的意圖更加清晰。
這就是 Razor 解析器的建構方式。如果您不喜歡它的方式並希望人們投票支持它,您可以隨時在 MS Connect 上送出錯誤/功能請求,並且它將在解析器的未來版本中修復/實現。就我個人而言,我不會,因為我不在乎(原因見下文)。
說了這麼多,何必在意呢?我的意思是你不應該在 Razor 頁面中編寫程式碼。Razor 頁面旨在用作視圖。在 ASP.NET MVC 中,視圖用於顯示視圖模型中的一些資訊,這些資訊是從控制器操作傳遞給它的。主要標記,與 HTML 幫助器混合併顯示來自視圖模型的資訊。但是 C# 程式碼是不行的。因此,您所謂的程式碼以及您在問題中顯示的內容在 Razor 視圖中完全無關。