C# javascript视图状态问题

C# javascript视图状态问题,c#,.net,javascript,C#,.net,Javascript,我遇到了一个困境,希望有人能帮助我。我正在构建一个.NET/C web应用程序,其中有一个选项卡式面板布局,当用户单击每个选项卡时,显示面板将使用javascript更新,以隐藏和显示一些div。这些点击都不会导致回发,都是客户端的,所以我不能使用viewstate或session 我想做的是记住刷新页面时最后一次看到哪个面板,但在没有发回服务器的情况下,我不确定如何做到这一点。我尝试了一个隐藏字段,但很明显,它的值每次都会重置,因为表单从未提交。我知道我可以使用cookies来实现这一点,但对

我遇到了一个困境,希望有人能帮助我。我正在构建一个.NET/C web应用程序,其中有一个选项卡式面板布局,当用户单击每个选项卡时,显示面板将使用javascript更新,以隐藏和显示一些div。这些点击都不会导致回发,都是客户端的,所以我不能使用viewstate或session

我想做的是记住刷新页面时最后一次看到哪个面板,但在没有发回服务器的情况下,我不确定如何做到这一点。我尝试了一个隐藏字段,但很明显,它的值每次都会重置,因为表单从未提交。我知道我可以使用cookies来实现这一点,但对于这样一个看似微不足道的操作来说,实现它有点烦人。。。但也许这是唯一的办法

对于这个问题,有谁有更优雅的解决方案吗

使用类似的函数显示和隐藏选项卡:

function makeCurrent(tab) {

if (tab.title == 'Manage orders') {        
    document.getElementById('panelOrders').style.display = "block";
    // Hide others
    document.getElementById('panelAccounts').style.display = "none";
    document.getElementById('panelProducts').style.display = "none";
    document.getElementById('panelSettings').style.display = "none";

    // Remember last viewed panel
    document.getElementById('hdnCurrentlyViewing').value = "orders";
}

面板只是由style.display控制其可见性的div。不确定发布HTML代码是否有用,因为这是非常自解释的…?

不需要回发就可以做到这一点,就是从Javascript发出AJAX调用,在切换面板时告诉服务器当前面板是什么


我更喜欢使用JQuery或Prototype这样的框架来帮助自己进行这些AJAX调用。

我认为隐藏字段将是最好的选择。你试过ASP:HiddenField吗?它可以跨回发访问

但是,如果您对回发和hiddenfield仍有一些保留,那么您也可以使用JS中的Cookie,这是JS中用于Cookie操作的帮助器库


关于。

没有ajax,我希望避免这种情况,但显然我不能……如果你可以假设只有最新的浏览器,那么就有HTML5 web存储API,你可以通过它在浏览器上保存会话信息。除了这个功能之外,我对像jQuery这样的库没有太多的用处,所以我宁愿选择更轻量级的。那我就得写一些AJAX函数了?是的,那你就得自己开发AJAX函数了。但是在我看来,如果你在JS中隐藏div和进行一些UI操作,JQuery是一个很好的方法,可以自动处理很多基于浏览器的麻烦。是的,我尝试过隐藏字段服务器控件,但是这里没有回发。显示用javascript更新客户端,所以这不起作用。隐藏字段的值永远不会提交到服务器。我想其他人在这里为我证实了这一点——AJAX是唯一有效的方法。Cookie方法是一种有趣的方法。。。添加和删除cookie非常简单,所以这可能比AJAX更容易?然而,Cookie方法不适用于禁用Cookie的人……是的,Cookie很容易实现,但是如果有人不支持Cookie,这将是一个问题。。