如何从jQuery在Controller或全局变量上设置属性?

时间:2016-05-05 06:43:41

标签: javascript c# jquery asp.net-mvc asp.net-mvc-5

我的ASP MVC 5网站的NavBar元素中有一个复选框。在每个页面上使用该复选框的状态来确定除活动记录外,网格是否还将显示非活动记录。

我有一个带有静态prop的静态类,我试图用_Layout.cshtml写一些jQuery,这样我的每个控制器都可以在Index()方法上检查相同的prop。

我尝试了以下但后来我意识到它不会起作用,因为一个是客户端和另一个服务器。

那么,有没有办法做到这一点或类似的东西?

_Layout.cshtml(html)

<div class="nav pull-right checkbox navbar-btn">
                @Html.CheckBox("ShowInactive", false) Show Inactive
</div>

_Layout.cshtml(JS,非常底部)

<script type="text/javascript">
    $(document).ready(function () {
        $("#ShowInactive").prop("checked", @HttpContext.Current.Application["ShowInactive"]);
        $("#ShowInactive").click(function () {
            if (this.checked) {
                @HttpContext.Current.Application["ShowInactive"] = true;
            }
            else
            {
                @HttpContext.Current.Application["ShowInactive"] = false;
            }
            //This is to make the grid reload after the checkbox is changed.
            location.reload();
        });
    });
</script>

GlobalVariables.cs

public static class GlobalVariables
{
    public static bool ShowInactive
    {
        get { return (bool)HttpContext.Current.Application["ShowInactive"]; }
        set { HttpContext.Current.Application["ShowInactive"] = value; }
    }
}

2 个答案:

答案 0 :(得分:-1)

使用此:

document.getElementById('ShowInactive').checked = true;

OR

$('#ShowInactive').attr('checked', 'checked');

OR

$("#ShowInactive").prop("checked", true);

答案 1 :(得分:-1)

$(document).ready(function () {

$(&#34;#ShowInactive&#34;)。prop(&#34; checked&#34;,true); });