Мне нужно получить доступ к данным, хранящимся в localstorage, на стороне сервера, но это еще одна история.Передача localstorage контроллеру с помощью Ajax
У меня есть эта кнопка, на мой взгляд:
<div style="float:right;">
<input id="btnTest" type="button" name="test Json Button" value="test Json Button" onclick="sendLocalStorage();" class="btn btn-default" />
</div>
Это JS функция:
function sendLocalStorage() {
var JsonLocalStorageObj = JSON.stringify(localStorage);
//var test = ["test1", "test2", "test3"];
$.ajax({
url: "/MyControllersName/Test",
type: "POST",
dataType: 'json',
data: JsonLocalStorageObj,
contentType: "application/json; charset=utf-8",
beforeSend: function() { alert('sending') },
success: function (result) {
alert(result.Result);
localStorage.clear();
}
});
};
И этот метод тестирования контроллера:
[HttpPost]
[WebMethod]
public ActionResult Test(string JsonLocalStorageObj)
{
string x = JsonLocalStorageObj;
//deserialize here
return RedirectToAction("Index");
}
Когда я бегу JSON.stringify(localStorage);
в хромированной разработчика инструменты, я вижу данные как ожидалось, однако, когда я отлаживаю свой контроллер JsonLocalStorageObj
всегда null
. В качестве теста я использовал контрольный массив, который был прокомментирован, и установил параметр на контроллере, чтобы принять List<string>
, и это произошло через заполненный.
Проникновение проблемы с JSON.stringify(localStorage);
?
просто примечание стороны, мне не нужно, чтобы stringify LocalStorage, как это уже в формате JSON, понял это после. – JsonStatham