C# Razor输出javascript 前端cshtml判断输出ViewBag

本文介绍了一种解决Razor视图中JavaScript获取后台传递值为null的方法,通过使用<text>伪元素让Razor从编译模式返回内容模式,从而实现前后端值的有效传递。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

开始遇到这个问题,是源于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判断后台传递的值的问题了。

本博客文章大多是经验积累总结,以免今后忘却,记录下来。同时感谢您的阅读,也希望能对您有所帮助。

 

 

 

 

转载于:https://my.oschina.net/u/2457585/blog/1531593

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值