开始遇到这个问题,是源于ViewBag的一个值是个对象类型。 假设是User{ id="1",name="test" } 这样的结构。那在前端就有可能出现ViewBag.User为null的情况。
为了解决这个问题,查找资料,给出的答案是
@{
if(ViewBag.User==null)
{
}
}
但这样有个问题,既然已经变成了后台代码,怎么输出前端代码呢?
于是继续寻找答案,找到了这样的代码
@if(ViewBag.User!=null)
{
<p>@ViewBag.User.name</p>
}
于是我也照着这样写,但毕竟我这里是javascript代码,所以会出现报错。
为了解决错误,继续找资料
最后找到了最终的解决办法
<script>
var id="";
@if(ViewBag.User!=null)
{
<text>
id="@ViewBag.User.id";
</text>
}
</script>
说明:通过使用<text>这个伪元素来强制Razor从编译模式返回到内容模式。
这样就轻松的解决了前端javascript判断后台传递的值的问题了。
本博客文章大多是经验积累总结,以免今后忘却,记录下来。同时感谢您的阅读,也希望能对您有所帮助。