假設您正在構建簡單的東西,比如用於處理名爲Customer的實體的數據輸入/ CRUD表單。也許你通過Session狀態傳遞CustomerID。你使用什麼構造/模式來訪問狀態?
我傾向於寫了很多相當樣板管道代碼各地處理該會話變量以特定方式。這些目標略有不同,但往往是一些類似:
- 避免弄亂頁面與管道代碼
- 操控後退按鈕智能
- 拆除會話變量中的主流,堅持它儘快ViewState的防守對於那些國家沒有獲得通過,或丟失
你有處理這種情況最好的做法故障情況下
最近我一直在使用屬性與會話變量。這裏有一個簡單的例子,我只是把在一起,但請記住,這將不會是很寬容的後退按鈕:
Private ReadOnly Property CustomerID() As Integer
Get
If Me.ViewState(Constants.CustomerID) Is Nothing Then
If Me.Session(Constants.CustomerID) Is Nothing Then
Throw New ApplicationException("CustomerID was not persisted.")
Else
Me.ViewState(Constants.CustomerID) = Me.Session(Constants.CustomerID)
Me.Session.Remove(Constants.CustomerID)
End If
End If
Return Me.ViewState(Constants.CustomerID)
End Get
End Property
那麼,請問你的店處理呢?謝謝!
只是好奇你的意思是通過隱藏的輸入字段或視圖狀態傳遞數據?我想你在談論跨頁面回發?我還沒有使用過。 –
在這兩種情況下,我都在談論發佈到另一個URL。使用ASP.NET WebForms,這可能是使用ViewState的跨頁面回發。在ASP.NET MVC中,這可能只是一個簡單的HTML