Javascript 使用本地存储在视图MVC中设置值

Javascript 使用本地存储在视图MVC中设置值,javascript,jquery,asp.net-mvc,Javascript,Jquery,Asp.net Mvc,我有一个类似于向导的程序,所以它从第1页开始,点击下一页,第2页,点击下一页,第3页,等等。在点击按钮时,我使用javascript将某些复选框控件值放入本地存储。我的问题是,当我按back键返回上一页时,控制值重置为0/false。如何在MVC中产生pageload类型效果,以从本地存储重新填充这些值。一个选项是使用隐藏的div: @using(Html.BeginForm()) { <div id="step1"> <!--form objects-

我有一个类似于向导的程序,所以它从第1页开始,点击下一页,第2页,点击下一页,第3页,等等。在点击按钮时,我使用javascript将某些复选框控件值放入本地存储。我的问题是,当我按back键返回上一页时,控制值重置为0/false。如何在MVC中产生pageload类型效果,以从本地存储重新填充这些值。

一个选项是使用隐藏的div:

@using(Html.BeginForm()) {
    <div id="step1">
        <!--form objects-->
        <input type="button" id="to_step2_button" />
    </div>
    <div id="step2" style="display: none;">
        <!--form objects-->
        <input type="button" id="to_step1_button" value="Back" />
        <input type="button" id="to_step3_button" value="Next" />
    </div>
    <div id="step3" style="display: none;">
        <!--form objects-->
        <input type="button" id="to_step2_button" value="Back" />
        <input type="submit" id="finish_button" value="Finish" />
    </div>
}
并根据步骤使用jquery/javascript隐藏/显示div

此方法还有其他好处,例如:您可以使用1页、1个模型、1个表单,无需重新加载


轶事:我在一家房地产租赁网站工作,列表表单有87个字段分组,每个组在选项卡式视图中都有一个选项卡,这些选项卡只是隐藏和显示表单中的div。我们还添加了“下一步”和“上一步”按钮,它们在选项卡中循环。它工作得非常好,对客户端来说是有意义的,我们不必在页面之间维护表单字段状态。每个人都赢了。

我决定将JavaScript直接放在引用我的JavaScript文件的视图上。我将我称之为LoadPage方法的内容放在页面顶部的@Javascript部分……在LoadPage中,我有如下代码:

function loadPage(currentPage) {

    var currentPage = currentPage;

    if (window.localStorage.getItem("chkProvider") == 'true') {
        document.getElementById('chkProvider').checked = true;
    }
    if (window.localStorage.getItem("chkSubscriber") == 'true') {
        document.getElementById('chkSubscriber').checked = true;
    }
}

这在页面加载并设置需要更新的值时运行。这是一个如何使用JavaScript和本地存储更新视图的示例。我希望我的解决方案能帮助别人

这与MVC无关。使用本地存储时,您负责管理存储的数据。如果你想重新填充这些字段,你需要使用JavaScript从本地存储中读回存储的值,并用这些值填充字段。说出你为什么要这样做非常重要。是否有人会这样做,离开,然后从另一台计算机登录?如果是这样,那么本地存储不是答案。如果这是一个被扔掉的东西,如果用户没有在同一个会话中完成它,那么本地存储可以工作。@ChrisPratt我理解这一点。你在哪里调用来重新填充那些字段…我真的不想对我的视图进行任何调用,因为我理解视图应该是非常愚蠢的。我有Javascript路由,通过点击后退/下一步按钮,我需要转到哪个页面,但一旦重定向发生……我如何触发这个重新填充过程?