2011-12-30 112 views
2

我剛剛升級的ASP.NET MVC應用程序到3.0版本和剃刀在ASP.NET MVC3剃刀@ Html.Raw(Json.Encode不計算

我有我的主頁下面的代碼:

<script type="text/javascript"> 
     /*@[email protected]*/ 
     var LastUserSetting = @Html.Raw(Json.Encode(ViewData["LastUserSetting"] == "" ? "''" : ViewData["LastUserSetting"])); 
    </script> 

在瀏覽器中,這最終表示爲:

var LastUserSetting = @Html.Raw(Json.Encode(ViewData["LastUserSetting"] == "" ? "''" : ViewData["LastUserSetting"])); 

隨着以下錯誤消息: 「參照未定義XML名稱@Html」

這顯然不是我想要的。

我失蹤了什麼?我做錯了什麼?

非常感謝!

+1

爲什麼你將某些東西傳遞給你的視圖,但仍然沒有完全解決? – 2011-12-30 18:56:45

+0

視圖文件的位置,名稱和擴展名是什麼?那個錯誤發生在哪裏? – 2011-12-30 19:02:34

+0

@nathangonzalez你是什麼意思?我只是想爲變量傳遞一個值。就這樣。而剃刀未能解決'@Html' – Barka 2011-12-30 19:09:30

回答

5

您正在使用的WebForms母版頁裏面剃刀代碼。這是行不通的。 Razor語法僅適用於Razor視圖(cshtml或vbhtml)

因此,您需要切換回在該主服務器中使用WebForms語法,或者切換到使用實際的Razor視圖。

+0

謝謝!看來我需要將我的頁面逐一更換爲相同的剃鬚刀。 – Barka 2011-12-30 19:25:15

1

試着將你的剃鬚刀代碼withing單引號:

<script type="text/javascript"> 
    /*@[email protected]*/ 
    var LastUserSetting = '@Html.Raw(Json.Encode(ViewData["LastUserSetting"] == "" ? "''" : ViewData["LastUserSetting"]))'; 
</script> 
+0

謝謝!我已經在字符串中有單引號和雙引號,將它括在另一組單引號中,並且導致錯誤 – Barka 2011-12-30 19:15:32