如何从 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 中获取布尔值?的主要内容,如果未能解决你的问题,请参考以下文章