将MVC ViewBag属性转换为小写

Convert MVC ViewBag property to lowercase

本文关键字:转换 属性 MVC ViewBag      更新时间:2023-09-26

我试图使用布尔MVC ViewBag属性,该属性正在javascript if语句内的控制器中设置。然而,有一个问题被引入,因为属性值被转换为帕斯卡情况。例如,"true"变为"true", "false"变为"false"。

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

如何确保将属性转换为小写?我试过使用javascript函数。tolowercase(),没有成功。

一种方法是:

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

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

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

注意如果你引用true和false,它们会变成字符串,true和"true"不一样。

我一直使用这种方法,因为长版本(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>