我使用的文本框的MVC hmtl幫助語法,即@Html.TextBoxFor(m => m.Id)
。我有相當冗長的形式與多個文本框,單選按鈕和下拉菜單。ASP.NET @ Html.TextBoxFor:如何在用戶頁面刷新的情況下輸入用戶輸入的值?
問題是,當我刷新頁面時,填充在控件中的值即文本框,下拉列表,填充的單選按鈕都會丟失。
即使用戶刷新頁面,我如何避免這種情況並恢復表單的填充值?除localstorage/cookies等之外的其他方法?
我使用的文本框的MVC hmtl幫助語法,即@Html.TextBoxFor(m => m.Id)
。我有相當冗長的形式與多個文本框,單選按鈕和下拉菜單。ASP.NET @ Html.TextBoxFor:如何在用戶頁面刷新的情況下輸入用戶輸入的值?
問題是,當我刷新頁面時,填充在控件中的值即文本框,下拉列表,填充的單選按鈕都會丟失。
即使用戶刷新頁面,我如何避免這種情況並恢復表單的填充值?除localstorage/cookies等之外的其他方法?
您可以創建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();
});
我相信會話或本地存儲是存儲表單數據的更好選擇。每次發出請求時都會在標頭中發送Cookie,因此應該爲更小的數據集(如令牌)預留Cookie。 –
OP明確指出解決方案不使用cookie或localstorage的要求,儘管可能無法在沒有本地存儲或cookie的情況下保存頁面狀態 –
@Brian也許OP可以使用模型保存表單數據,並且可以返回視圖這個模型在控制器 – hasan
是否有一個原因,你不能使用本地存儲或會話存儲,讓您的表單數據? –
只是想探索是否有任何其他方式來解決這個問題。 – maverick
@sahil頁面的狀態必須保存,簡單明瞭 –