如何在Javascript中比较C#Viewbag中的值?

时间:2012-08-31 10:42:52

标签: c# javascript asp.net-mvc-3

我想在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();

但它也不起作用。我怎样才能使它工作?任何帮助将不胜感激。

5 个答案:

答案 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)