ASP.NET @ Html.TextBoxFor:如果不刷新用户在刷新的情况下输入的值?

时间:2017-06-17 13:50:12

标签: asp.net asp.net-mvc

我在文本框中使用MVC hmtl helper语法,即{。{1}}。我有很长的形式,有多个文本框,单选按钮和下拉。

问题在于,当我刷新页面时,控件中填充的值即文本框,下拉列表,填充的单选按钮都会丢失。

即使用户刷新页面,如何避免这种情况并恢复表单的填充值?除localstorage / cookies之外的任何其他方法等。

1 个答案:

答案 0 :(得分:0)

您可以使用sessionStorage创建jquery自定义方法,并且可以将其添加到jquery.fn对象,以便在页面刷新后保留表单数据

(function($){

   // To Load your form values from sessionStorage, and set sessionStorage when value is changed.

  $.fn.keepValue = function(name) {
    if(!name) {
      name= "";
    }
    return this.each(function() {
      var $this = $(this);
      var id = $this.attr('id');
      var storage_name = namespace + id;
      var value;

      // Store form changes in a cookie
      $this.change(function() {
         sessionStorage.setItem(storage_name, $this.val());
      });

      value = sessionStorage.getItem(id);

      // Don't overwrite value if it's already exist
      if(!$this.val()) {
        $this.val(name + value);
      }
    });
  };
})(jQuery); 

$(document).ready(function(){
  $('#YourElementId').keepValue();
});