我想在javascript中比较Viewbag
的布尔值。所以起初我试过这个:
if (@Viewbag.MyBoolValue)
do_sth();
但是我在控制台中遇到错误:Value False/True is not declared
(不完全是)。
所以我尝试了这个:
@{
string myBool = ((bool)Viewbag.MyBoolValue) ? "true" : "false";
}
并在javascript中:
if (@myBool == "true")
do_sth();
但它也不起作用。我怎样才能使它工作?任何帮助将不胜感激。
答案 0 :(得分:17)
假设ViewBag中的值是javascript可以理解的类型,那么你应该有什么工作。
但请注意,您的第一个示例很可能无效,因为布尔值在javascript中为小写,在C#中为大写。考虑到这一点,试试这个:
var myBoolValue = @Viewbag.MyBoolValue.ToString().ToLower();
if (myBoolValue)
do_sth();
答案 1 :(得分:1)
下面将创建一个javascript,可以使用viewbag中的值
<script>
var myBoolInJs = @Viewbag.MyBoolValue;
if(myBoolInJs == true)
do_sth();
</script>
答案 2 :(得分:1)
NSBatchDeleteRequest
或
var myBoolVal = @((ViewBag.MyBoolValue ?? false).ToString().ToLower());
或
var myBoolVal = '@(ViewBag.MyBoolValue)'==='@true';
答案 3 :(得分:0)
这样可行。
@{
string myBool = Viewbag.MyBoolValue.ToString().ToLower();
}
if (@myBool)
do_sth();
答案 4 :(得分:0)
Insted true和false在控制器中使用0和1,在剃刀页面上
@{
var isSomething= Viewbag.MyBoolValue;
}
稍后
if (@isSomething== 0)