Хотите, чтобы конечный пользователь знал идентификатор? Например, если значение идентификатора - стандартное начальное число 1,1 из базы данных, я мог бы посмотреть на число и посмотреть, сколько у вас клиентов. Если вы зашифруете значение (как это может сделать представление), мне будет намного сложнее расшифровать ключ (но не невозможно).
Альтернатива заключается в том, чтобы сохранить его в сеансе, что приведет к (очень небольшому, если это просто целое число) снижению производительности вашего приложения, но означает, что я, как пользователь, никогда не вижу этот первичный ключ. Он также предоставляет объект другим частям вашего приложения, так что вы можете или не хотите, чтобы он подвергался (объекты сеанса остаются до очистки, проходит установленное время (например, 5 минут) или закрывается окно браузера - в зависимости от того, что произойдет раньше) .
Значения состояния просмотра вызывают дополнительную нагрузку на клиента после каждого возврата назад, поскольку состояние просмотра не только сохраняет объекты для страницы, но и запоминает объекты, если вы используете кнопку возврата. Это означает, что после каждого поста назад, viewstate становится немного больше и сложнее в использовании. Они будут существовать только на его странице, пока браузер не перейдет на другую страницу.
Всякий раз, когда я сохраняю идентификатор на странице, подобной этой, я всегда создаю свойство
public int CustomerID {
get { return ViewState("CustomerID"); }
set { ViewState("CustomerID") = value; }
}
или
Public Property CustomerID() As Integer
Get
Return ViewState("CustomerID")
End Get
Set(ByVal value As Integer)
ViewState("CustomerID") = value
End Set
End Property
Таким образом, если вы решите изменить его с Viewstate на переменную сеанса или скрытое поле формы, это всего лишь случай его изменения в ссылке на свойство, остальная часть страницы может получить доступ к переменной с помощью «Page.CustomerID» .