【问题标题】:get value from viewbag property in javascript从 javascript 中的 viewbag 属性中获取值
【发布时间】:2016-03-10 23:26:22
【问题描述】:

我需要将 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 时,此解决方案也不起作用

如何解决脚本问题?

【问题讨论】:

    标签: javascript c# model-view-controller viewbag


    【解决方案1】:
    <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>
    

    【讨论】:

    • ......Json 救了我,谢谢
    猜你喜欢
    • 1970-01-01
    • 2013-09-27
    • 1970-01-01
    • 2015-02-07
    • 2019-02-03
    • 2016-09-27
    • 1970-01-01
    • 1970-01-01
    • 2016-03-04
    相关资源
    最近更新 更多