Как мне сохранить значение в ASP.Net MVC 3 без поста? - PullRequest
1 голос
/ 18 февраля 2012

Мне нужно сделать что-то вроде следующего:

  1. На странице, когда состояние флажка изменяется, выполните вызов jQuery AJAX на сервер, чтобы установить состояние флажка.
  2. Обновите jqGrid, который будет использовать это значение (еще один вызов AJAX).

Нет записи.

В ASP.Net я бы установил значение в viewstate и использовал его оттуда. Однако viewstate недопустимо в MVC.

Где я могу сохранить это значение, чтобы оно было доступно при всех последующих вызовах этой страницы для этого сеанса?

Ответы [ 3 ]

2 голосов
/ 18 февраля 2012

Разве флажок не установлен?Просто используйте значение от клиента.Если вы заменяете его, когда получаете результат через AJAX, вы должны установить значение в модели до того, как ответ (AJAX) будет возвращен, чтобы он имел правильное значение на клиенте.Если поле представляет собой какое-то предпочтение, выбранное один раз, затем применимое ко всем страницам, затем сохраните его в сеансе или в каком-либо механизме сохранения (cookie, БД SQL-сервера, RavenDB), извлекая его оттуда по мере необходимости.

1 голос
/ 18 февраля 2012

Вы можете использовать cookie для хранения этой информации, поскольку она не является конфиденциальной.

Взгляните на плагин cookie jQuery здесь

Примеры:

//A cookie by the name 'checkboxstate' now exists with the value 'true'
$.cookies.set('checkboxstate', 'true'); 

//Variable 'checkBoxState' now holds the value 'true'
var checkBoxState = $.cookies.get( 'checkboxstate' ); 

//The cookie named 'checkboxstate' has been deleted.
$.cookies.del('checkboxstate'); 

Существуют различные способы сохранения данных на стороне клиента или сервера, из которых cookie является одним из них. Вы можете посмотреть по этой ссылке http://msdn.microsoft.com/en-us/magazine/cc300437.aspx, она определенно поможет вам решить, какой из них выбрать, исходя из ваших требований.

0 голосов
/ 18 февраля 2012

Вы можете использовать сеансы?

Session["value_name"] = Something.Text;

(Подробнее о сессиях здесь: http://msdn.microsoft.com/en-us/library/87069683(v=vs.85).aspx)

...