将MVC ViewBag属性转换为小写

时间:2015-09-17 22:26:02

标签: javascript c# asp.net-mvc

我正在尝试使用在javascript if语句中的控制器中设置的布尔MVC ViewBag属性。但是,由于属性值转换为Pascal大小写,因此引入了一个问题。例如,“true”变为“True”,“false”变为“False”。

<script type="text/javascript">
    var error = @ViewBag.Dropped;
    if ( error ) {
        $( '#alert-message' ).addClass('alert-success alert-dismissable');
    }
</script>

如何确保将属性转换为小写。我试过使用javascript函数.toLowerCase()并且不成功。

4 个答案:

答案 0 :(得分:5)

一种方法是:

<script type="text/javascript">
    var error = @(ViewBag.Dropped ? "true" : "false");
    if ( error ) {
        $( '#alert-message' ).addClass('alert-success alert-dismissable');
    }
</script>

答案 1 :(得分:3)

var error = @ViewBag.Dropped.ToString().ToLower();

答案 2 :(得分:1)

我不认为上面的答案会有效,因为Javascript中的所有字符串都是真的,你可能想要

<script type="text/javascript">
    var error = @(ViewBag.Dropped ? true : false);
    if ( error ) {
        $( '#alert-message' ).addClass('alert-success alert-dismissable');
    }
</script>

请注意,如果引用true和false,它们将成为字符串,而true与&#34; true&#34;不相同。

答案 3 :(得分:0)

我一直使用这种方法,因为较长的版本(value.ToString().ToLowerInvariant())过于繁琐而无法一直输入:

将类添加到项目或库中:

public static class ExtensionMethods
{
    public static string ToJS(this bool value)
    {
        return value.ToString().ToLowerInvariant();
    }
}

然后在你的js:

<script type="text/javascript">
    var error = @ViewBag.Dropped.ToJS();
    if ( error ) {
        $( '#alert-message' ).addClass('alert-success alert-dismissable');
    }
</script>