关于页面的js使用控制器传过来的ViewBag中字符串数据的小问题
场景
首先我在控制器中通过ViewBag.Flag = "auth"传给视图这个字符串,然后在视图中用js获取这个值。于是代码写到:var itemId = @ViewBag.Flag; …。可是测试功能时发现效果没出来,F12调试时console中发现一个错误:var itemId = auth; 错误提示变量auth未定义。
原因
原来是这个地方@ViewBag.Flag会直接获取字面值,而不会替我们转换成字符串类型,也就是不会替我们在值字面值的外侧加上双引号。因此编译器会将这个值当成一个变量来看待,当然会报变量未定义的错误。进而不会执行后面的js代码,造成整个业务功能失败。
解决
在@ViewBag.Flag外侧加上双引号即可,让结果成为一个字符串。