2012-01-02 3 views
0

Я довольно новичок как в JSF, так и в ASP.NET, и насколько я могу понять (исправьте меня, если я ошибаюсь), при использовании боковых фаз в JSF данные временно сохраняется на стороне сервера для компонентов. Но в ASP.NET кажется, что такие временные данные хранятся в скрытом поле на самой странице, называемой Viewstate.ASP.NET эквивалент JSF Session Bean

Я прав, если предположить это? Есть ли что-нибудь в ASP.NET, которое будет автоматически управлять данными и хранить их на стороне сервера в объектах (например, JSF)?

ответ

1

ASP.NET поддерживает как состояние Viewstate, так и состояние сеанса. Вот ссылка на некоторую информацию о состоянии сеанса.

http://msdn.microsoft.com/en-us/library/ms178581.aspx

я рекомендовал бы, что вы пытаетесь избежать использования ViewState на всех, и использовать состояние сеанса экономно. Вы должны стремиться к тому, чтобы ваши приложения ASP.NET были «без гражданства», насколько это возможно. Не переутомляйте состояние сеанса, или вы можете столкнуться с проблемами масштабируемости в будущем. Рассмотрим следующие альтернативы.

http://www.4guysfromrolla.com/webtech/041600-2.shtml

+0

Ничего себе, спасибо за быстрый ответ! Кажется, это мой ответ, но потом я вижу, что ASP.NET не хватает лучшего инкапсулированного стиля JSF-компонентов. – Nilesh

+0

Вам не нужно сохранять viewstate для элемента управления на самой странице. Вы можете добавить пользовательский поставщик представлений, который использует базу данных или другой такой механизм хранения на стороне сервера. Возможно, это будет ближе к стилю JSF. – mikey

0

Вы можете использовать ASP.NET Session State.

Session["FirstName"] = FirstNameTextBox.Text; 
Session["LastName"] = LastNameTextBox.Text; 

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

+0

Обратите внимание, что эта ссылка хорошая страница на эту тему, и это был первый результат поиска «asp.net сессии». Остальные ссылки на первой странице результатов также выглядят хорошо. – Douglas

+0

Спасибо, я на самом деле подумал (теперь я уверен), что что-то вроде вышеупомянутого может быть сделано, но это не так инкапсулировано, как реализация JSF. – Nilesh