如何在页面刷新后避免丢失数据

时间:2017-01-18 10:23:38

标签: javascript c#

我的表单中有三个下拉列表,我希望不会丢失用户选择的数据,即使我刷新或在其他页面导航并返回。

这是我的观点,我有3个下拉列表:

 @using (Ajax.BeginForm("SearchForCars", "Home", null, new AjaxOptions { UpdateTargetId = "DivCategoriesTree", OnSuccess = "success", HttpMethod = "Post" }, new { make = "makes" }))
 {
           <div>
                    <div class="col-sm-4" style="height: 10em;display: flex;align-items: center ; padding-top:25px;">
                        <i class="fa fa-car" style="font-size:60px;color:red; padding-left:20px;"></i>
                        <strong style="padding-left:20px;"></strong>
                    </div>

                    <div class="col-sm-4">
                        <div style="padding-top:15px;">
                            <form class="form-control-static">
                                <div class="form-group">
                                    @*<div class="panel panel-default" id="Productresult">*@
                                    @*<div class="panel-body">*@
                                    <div class="row">
                                        <div class="col-sm-10">
                                            @if (ViewData.ContainsKey("makes"))
                                            {
                                                @Html.DropDownList("makes", ViewData["makes"] as List<SelectListItem>, "--Select make--", new { @class = "dropdown-toggle form-control" })
                                            }
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-sm-10">
                                            <p></p>
                                            @Html.DropDownList("models", new SelectList(string.Empty, "Value", "Text"), "--Select model--", new { @class = "dropdown-toggle form-control" })
                                        </div>
                                    </div>
                                    <div class="row">
                                        <p></p>
                                        <div class="col-sm-10">
                                            @Html.DropDownList("engines", new SelectList(string.Empty, "Value", "Text"), "--Select engine--", new { @class = "dropdown-toggle form-control" })
                                        </div>
                                    </div>
                                    @*</div>*@
                                    @*</div>*@
                                </div>

                            </form>

                        </div>
                    </div>

                    <div class="col-sm-4" style="height: 10em;display: flex;align-items: center ; padding-top:25px;">
                        <input type="submit" id="btnSearch" class="btn btn-default active" value="Cauta" disabled="disabled" style="width:150px;" />
                    </div>
                </div>
            }

我已尝试使用此代码解决,但它没有解决此问题:

window.onload = function() {        
  if (sessionStorage.getItem('makes') == "makes") {
        return;
}

var makes = sessionStorage.getItem('makes');
    if (name !== null) $('#makes').val(makes);
}

window.onbeforeunload = function() {
    sessionStorage.setItem("makes", $('#makes').val());
}

您能告诉我要检查什么,或者我该如何解决这个问题? 谢谢你提前!

1 个答案:

答案 0 :(得分:1)

您可以使用TempData []。您甚至可以在其他页面上传递该值,除非您将其设置为null。

相关问题