我試圖找到一個很好的方法來處理以下情形(我還是有點新本):ASP.NET MVC:如何處理跨動作的TempData和ViewData的
用戶可以註冊通過我的網站使用RPX/OpenId提供商。
步驟1:用戶通過提供商進行身份驗證。提供者將一個臨時令牌返回給我的一個操作方法。
第2步:我使用令牌來抓取用戶的個人資料信息並加載一個視圖,允許他們輸入任何缺少的必填字段和可選字段。
我在步驟2中使用了兩個操作方法:一個用來處理使用令牌獲取信息。第二個操作是獲取授權信息並加載缺失/可選字段視圖。
我通過TempData將授權信息傳遞給第二個操作。第二個動作可以處理驗證,因此我有可能需要堅持不止一個請求的授權對象。我不能使用該令牌重新生成授權信息,因爲它在技術上是一次性使用的令牌,並且由於使用網絡資源而重新生成請求將會很愚蠢。
如何將對象保存在我的TempData中,以便對相同動作的任何後續請求,但是刪除任何重定向的對象?而且,因爲這可能是我應用程序中的可重複模式,所以我應該創建一個Filter來自動處理這種情況?
例如,我想象一個過濾器屬性,它將合併TempData(如果有的話)到ViewData中 - 但是如何將我的數據保存到未來調用相同的動作?把它再次投入到TempData中?如果我檢測到重定向空的TempData?
感謝
擺弄周圍的幾個小時後,我決定重新添加數據的TempData 。我發現你不能再次使用TempData.Add,因爲集合已經包含密鑰。所以我創建了自己的擴展方法來重新添加密鑰。 – DennyFerra 2009-06-29 18:43:24