从 javascript 中的 viewbag 属性 获取价值

get value from viewbag property in javascript

我需要将 viewbag 属性 中的值分配给 javascript 变量

我已经浏览了一些帖子并按照那个创建了代码..

var selectedID = null;
@if (ViewBag.Section != null) {
    <script type="text/javascript">
        selectedID =ViewBag.Section ;
    </script>
}

但问题是它不接受脚本中的 ViewBag 属性 并显示语法错误。大多数帖子都有这种格式的解决方案,

我试过这样的解决方案:

1.

@{selectedID =ViewBag.Section ;}

2.

@if(ViewBag.DoAboutTab != null)
{
    var doAboutTab ="something";
} else {
    var doAboutTab ="something_else";
}

此解决方案没有为 @{} 代码之外的变量赋值 我可以通过此解决方案

设置常量值但不能设置Viewbag属性

3.selectedID = '@ViewBag.Section' !== @ViewBag.Section;

@ViewBag.Sectionnull

时,此解决方案也不起作用

如何解决脚本问题?

<script type="text/javascript">
    var selectedID = @Html.Raw(Json.Encode(ViewBag.Section));
</script>

如果未定义 ViewBag.Section 那么您将得到:

<script type="text/javascript">
    var selectedID = null;
</script>

如果 ViewBag.Section 等于 Some nasty escaped " string 那么你将得到一个正确编码的值,它不会破坏你的 javascript:

<script type="text/javascript">
    var selectedID = "Some nasty escaped \" string";
</script>