2014-11-17 3 views
1

Я хотел использовать некоторые данные с одной страницы на другую. Общее решение заключается в использовании Session (большинство рекомендаций). Мой босс не нравится сессий, и он предложил мне делать ту же работу, используя C# Property в общий класс, как показано нижеSession vs Property in C#

public static long parentId { get; set; } 

и установить ее одну на одну страницу, как

Common.parentId = "any value"; 

и использовать его на другой странице подобный

string anyVariable = Common.parentId 

, и это сработало. Мы также избавляемся от истечения сеанса. Но почему большинство людей рекомендуют сеанс. Является ли имущество другим государственным управлением?

+4

Если вам не нужны значения, разделяемые всеми сеансами, вы можете использовать статические свойства. –

+6

Является ли это 'static' переменной в' Common class'? Если вы делаете это неправильно, потому что все пользователи получат одинаковое значение. Лучше использовать 'Session' или [передавать значения с одной страницы на другую] (http://stackoverflow.com/questions/14956027/how-to-pass-values-across-the-pages-in-asp-net -insted-of-session # 14956100), хотя навигацию очень сложно контролировать. –

+0

Если временно, вы можете использовать AppCache для хранения объекта, много документов о том, как его использовать, вы можете хранить данные с идентификатором (возможно, с пользователем или ссылкой на страницу), а затем вытащить его на странице. – starlight54

ответ

0

Если вы собираетесь хранить некоторые данные с использованием простого статического свойства, вы должны понимать, что он будет доступен всем вашим пользователям. Сессии не для этого. Но я не вижу причин не использовать сеансы, если вы хотите где-то хранить данные пользователя.

В моем проекте это очень удобно, особенно когда мы используем SQL-сервер для хранения сеансов - мы можем обновлять наш сайт без каких-либо потерь данных сеансов пользователей. Вы можете проверить все возможные способы сеанса hanle, например, здесь http://msdn.microsoft.com/en-us/library/75x4ha6s(v=vs.100).aspx