如何从 ViewBag 中获取布尔值?

Posted

技术标签:

【中文标题】如何从 ViewBag 中获取布尔值?【英文标题】:How to get bool value from ViewBag on view? 【发布时间】:2015-11-12 11:03:02 【问题描述】:

我正在尝试从 ViewBag 接收布尔值。

但问题是要接收我正在使用的价值:

var test = '@ViewBag.Test'

这样,值将是'True''False'(字符串)。当然我可以使用if (test == 'True') 之类的东西,但是有没有办法直接从 ViewBag 布尔值中获取,或者至少转换它?

编辑:

我需要在 javascript 部分获取 ViewBag 值。

【问题讨论】:

显示,如何设置此变量 使用视图模型而不是视图袋。由于您需要在类中定义所有内容,因此设置的开销会稍多一些,但从长远来看会节省您的理智。你是想在 JS 还是 razor 中使用这个变量? 在 js 中。从角度来看是的,它将被更改为模型,但现在,我需要 ViewBag。 你不能把var test = '@ViewBag.Test';改成var test = @ViewBag.Test;吗? ***.com/questions/12213732/… 【参考方案1】:

在控制器代码是 ViewBag.Test = true;

查看代码是

var test=@(ViewBag.Test.ToString().ToLower());
console.log(test);

现在变量test的数据类型是bool。所以你可以使用:

if(test)
    alert('true');
else 
    alert('false')

【讨论】:

【参考方案2】:

您可以使用拆箱:

var test = @((bool)(ViewBag.Test??false))

压缩成单行,处理缺少的 ViewBag 元素。 Null 合并运算符返回 ViewBag.Test 的值,如果“Test”不存在,则返回 false。最后的值是类型转换。

【讨论】:

请通过解释它在现有答案中添加的内容来改进您的答案。【参考方案3】:

如果你的值是 bool 在控制器中然后使用 cshtml 页面

bool test='@ViewBag.Test';

由于viewbag 不需要强制转换,我认为当您在bool 变量中分配值时,它会在您的视图(cshtml)页面中为您提供bool

【讨论】:

【参考方案4】:

您只需删除引号var test = @ViewBag.Test

【讨论】:

【参考方案5】:

只需要:

<script>
   var test = '@ViewBag.Test';
   if(test)
       console.log(test);
   else
       console.log(test);;
</script>

【讨论】:

以上是关于如何从 ViewBag 中获取布尔值?的主要内容,如果未能解决你的问题,请参考以下文章

ComboBoxItem 中的复选框绑定到 Class 中的布尔值。如何从每个项目中获取每个布尔值?

如果列表包含布尔值,如何从列表中获取整数的索引?

如何从光标中获取布尔值(Java SQLite)

iOS如何从解析Swift 4中获取值“布尔”

如何从开关状态获取布尔值?

如何编写从布尔表达式查询中获取单个值的函数/触发器