2011-12-30 180 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