我想将viewbag分配给我的javascript变量来比较模型中的某些值
encoding
但这引发了一个例外:
未捕获的SyntaxError:意外的令牌=
我该怎么办?
答案 0 :(得分:1)
服务器使用变量@ViewBag.someId
生成它发送给浏览器的静态HTML页面。浏览器在收到HTML后能够直接更改服务器上的变量,这没有意义。
看起来您希望uid
的值来决定页面内容。如果您希望在服务器端进行这些更改(即在将页面发送到浏览器之前),那么您必须让MVC控制器在返回其视图之前从外部服务器获取此值。解决相同问题的更常规方法是使用Javascript在浏览器中转换页面。
答案 1 :(得分:1)
作为comment said,ViewBag是服务器端代码,您不能在C#代码块中使用js变量设置ViewBag,但可以使用ViewBag值设置js变量。像:
<script>
var uid ='@ViewBag.someId';
</script>
如果您只想将Model.AppDataFbId与js变量(uid)进行比较,请在js代码中添加逻辑。
<script>
function compare(){
if('@Model.AppDataFbId'==uid){
//other code
}
}
</script>