Javascript 使用会话存储复选框的状态

Javascript 使用会话存储复选框的状态,javascript,asp.net-mvc-4,session,Javascript,Asp.net Mvc 4,Session,我正在制作一个MVC网络应用程序。我需要在我的主索引页复选框,如果选中将更新其他页面上的某些选项。我想我可以将这个复选框的状态保存到会话中,以便以后可以访问它 这是正确的方向吗 我还认为会话不能用javascript调用,所以我会用AJAX调用来处理这个问题吗 谢谢你在正确方向上的帮助 编辑: 此应用程序根据用户选择的内容向用户显示多个可能的表格。然后可以在单独的页面上更新这些内容。此复选框将过滤掉可能在这些其他页面上显示的一些选项。使用模型不会起作用(我想),因为我有其他模型被发送到这些页面。

我正在制作一个MVC网络应用程序。我需要在我的主索引页复选框,如果选中将更新其他页面上的某些选项。我想我可以将这个复选框的状态保存到会话中,以便以后可以访问它

这是正确的方向吗

我还认为会话不能用javascript调用,所以我会用AJAX调用来处理这个问题吗

谢谢你在正确方向上的帮助

编辑:

此应用程序根据用户选择的内容向用户显示多个可能的表格。然后可以在单独的页面上更新这些内容。此复选框将过滤掉可能在这些其他页面上显示的一些选项。使用模型不会起作用(我想),因为我有其他模型被发送到这些页面。我想我可以将这个变量添加到这些模型中,并对其进行更新,但这似乎是一个没有任何实际收益的麻烦,除非我遗漏了什么

编辑2:

这就是我目前所拥有的。它似乎起作用了

$(function () {
    $("#checkBox1").change(function () {
        console.dir($("#checkBox1"));
        var choice = $("#checkBox1")[0].checked;
        console.log(choice);
        $.ajax({
            cache: false,
            type: "POST",
            url: RootDirectory + "Home/SetCheckBoxSession/",
            data: { "choice": choice },
            success: function () {
                alert("Updated session with " + choice);
            },
            error: function (xhr, ajaxOptions, throwError) {
                alert("Error changing session");
            }
        });

    })
})

[Authorize]
[AcceptVerbs(HttpVerbs.Post)]
public void SetCheckBoxSession(bool choice)
{
    Session["IsCheckBoxSet"] = choice;
}

有什么想法吗

这将是会话的一种可接受的用法,不过如果您希望此设置具有某种真正的持久性,则应将其添加为用户实体上的属性或使用声明。对于会话,您必须假设会话随时都可能被破坏,因此对应用程序至关重要的内容不应该存储在那里

虽然您不能通过JavaScript直接访问会话,但您可以使用AJAX调用执行一个操作,该操作将从会话中检索值并将其作为响应发送回去。但是,除非您希望在请求之间更改此值,否则实际上并不需要这样做。否则,只需在控制器操作或视图中直接使用
会话
对象即可确定渲染输出。或者,如果您确实需要知道JavaScript中的值,您可以在页面上设置一个JavaScript变量(最好是在应用程序的命名空间中),或者添加一个隐藏字段或包含可以从JavaScript中检索的值的内容


注意:如果使用AJAX路径,请在MVC
控制器的子级中使用操作,而不是Web API的
ApiController
。后者无法访问
会话
,因为Web API是REST兼容的,REST是无状态的。

您的意思是您的复选框没有绑定到模型的任何属性,所以好吧,您可以将状态存储在会话中,是的,您应该通过AJAX调用在会话客户端检索值,无论如何,您的问题实在太广泛了,请提供一些详细信息(例如代码)以获得answer@InvernoMuto我还没有这部分的代码。我还在想我想(应该)朝哪个方向走。我只是在验证这是否可行,我并没有因为缺乏MVC经验而忽略一个更好的选择。