我知道@:
运算符允许我从mvc指令中访问javascript变量,但我不知道如何关闭该运算符。
我有以下代码:
var temp = 123
@{ Html.RenderAction("DeliveredShipmentDetailView", "PartialPages", new {orderId = @:temp});}
当我运行此代码时,我收到
的错误消息“代码块缺少结束”}“字符”
我知道这是由@:
字符引起的,导致结束字符被视为javascript,但不知道如何解决此问题。由于将操作符包装在括号中将具有与之相同的效果。
答案 0 :(得分:1)
你弄错了。 @:不允许您访问razor c#代码中的JS变量。 事实上,没有任何条件允许,因为它是不可能的。 Razor在呈现html时在服务器上执行,而JS代码在客户端浏览器上执行。因此,无法直接在Razor语法中访问JS变量。
@:实际上是允许您从Razor中的C#代码块中输出纯文本。
示例:
从c#代码块中输出文本的一种方法
@if (foo) {
<text>Plain Text</text>
}
或@:
@if (foo) {
@:Plain Text is @bar
}
同样的事情......
点击here以获取快速参考
答案 1 :(得分:0)
您不需要@:因为您已经 在该帮助声明中的代码部分。
更新:如果temp
是C#变量而不是Javascript变量,则上述情况属实。当然,你不能(原则上)在Razor中使用Javascript变量。