【问题标题】:How to set a Javascript variable from my View using a ViewBag property如何使用 ViewBag 属性从我的视图中设置 Javascript 变量
【发布时间】:2011-12-16 20:01:54
【问题描述】:

我想根据控制器中 ViewBag 属性的存在在我的视图中(在脚本块内)设置一个 JavaScript 变量...例如:

var doAboutTab = @(ViewBag.DoAboutTab != null)

这会产生一个 JavaScript 错误:

var doAboutTab = False

'未定义假'

【问题讨论】:

    标签: asp.net-mvc-3 razor


    【解决方案1】:
    @if(ViewBag.DoAboutTab != null)
    {
        var doAboutTab ="something";
    }else
    {
        var doAboutTab ="something_else";
    }
    

    var doAboutTab = '@ViewBag.DoAboutTab' !== '';
    

    【讨论】:

    • 我在 ViewBag 中遇到许多以“预期常量”开头的语法错误
    • 你能展示一下你的观点吗,我刚刚测试了这段代码并且运行良好。
    • 非常棒,你的第二个解决方案就像一个冠军......谢谢一百万!
    • 第二种解决方案是布尔值,而第一种解决方案是一些复杂的数据。
    【解决方案2】:

    false关键字在javascript中是小写的。

    var doAboutTab = @((ViewBag.DoAboutTab != null).ToString().ToLower());
    

    【讨论】:

    • 没问题。我花了大约一周的时间才真正理解所有细微差别。
    【解决方案3】:

    C# 中 bool 上的 ToString() 方法将其返回为“False”。Javascript 需要“false”,您应该将其设为小写

    var doAboutTab = @((ViewBag.DoAboutTab != null).ToString().ToLower())
    

    【讨论】:

    • @Pablo Strange,我用明确的剃刀表达式更新了代码。请再试一次
    • @Romias "@:" 用于在服务器端代码中显示纯文本。
    • Ufuk 我得到的错误来自我认为需要 ToLower() 的 ToLowerCase()
    猜你喜欢
    • 1970-01-01
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多