Как сохранить состояние элемента пользовательского интерфейса при обратной передаче?(ASP.NET MVC) - PullRequest
5 голосов
/ 12 мая 2011

Так что я планирую создать сложную страницу со многими анимируемыми элементами пользовательского интерфейса.Я хочу придумать чистый способ поддерживать состояние (развернуто / свернуто, выделено и т. Д.) Этих анимируемых элементов пользовательского интерфейса.У меня есть несколько идей, но я просто хочу знать, знал ли кто-нибудь какой-нибудь фреймворк js, который делает это, чтобы я не изобретал колесо заново.

РЕДАКТИРОВАТЬ

Моя идея на данный момент такова:

1) На посте формы получите состояние каждого элемента пользовательского интерфейса и добавьте его в данные POST.Я думаю о маркировке всех элементов пользовательского интерфейса, для которых я хочу отслеживать состояние, с помощью специального класса CSS (тип регистрации для отслеживания), и каждый из них поддерживает некоторый обратный вызов, который позволит мне получить их состояние полиморфным способом (каждый элемент пользовательского интерфейса).имеет собственное понимание состояния, например, расширенный, выбранный индекс, выделенный и т. д.)

2) Создание HtmlHelpers для моих элементов пользовательского интерфейса, которые могут распознавать информацию о состоянии, отправленную клиентом, и выводить HTML-код элемента пользовательского интерфейса в правильном состоянии.(Я предпочитаю, чтобы состояние устанавливалось на стороне сервера, а не заставляло js все время пытаться восстановить состояние на стороне клиента ... верно?)

3) Не быть таким сложным или раздутым, какWebControls или ViewState

Есть ли фреймворк, который делает подобные вещи и работает ли он лучше, и если нет, то мой предложенный фреймворк звучит как хорошая идея?

Ответы [ 3 ]

2 голосов
/ 12 мая 2011

Полагаю, KnockoutJS может помочь вам, поскольку вы можете консолидировать всю логику управления данными / состоянием на ней, а затем сохранять ее так, как вам нравится, т.е. использовать функцию .toJSON() и отправлять ее в сервер.

А, возможно, вы сможете интегрировать его с решением @Swwarty localStorage?

1 голос
/ 12 мая 2011

В прошлом я делал что-то похожее на это и использовал плагин jQuery cookie.Это может быть приемлемым вариантом, он зависит только от того, как долго вам нужно поддерживать состояние, и можете ли вы полагаться на пользователей, у которых включены файлы cookie.

http://plugins.jquery.com/project/Cookie

0 голосов
/ 12 мая 2011

Вы можете использовать localStorage, если пользовательский агент поддерживает его (большинство поддерживают), и в случае отказа использовать куки или даже сеанс (при условии, что ваша область в порядке с сохранением состояния пользовательского интерфейса пользователя на отдельном компьютере). уровень, а не сохранение этого состояния для нескольких устройств). У меня есть пост о том, как вы можете использовать Modernizr в MVC 3 для проверки поддержки localStorage и сохранения / получения из нее.
Узнайте, как использовать Modernizr из Обновления инструментов ASP.NET MVC3 для хранения пользовательских данных через HTML5 localStorage

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...