2011-10-16 41 views
0

我使用TempData來爲從ChildAction呈現的表單持續存在ModelState錯誤。該表格允許用戶在博客文章上發表評論。如果ModelState無效,則將錯誤複製到TempData,然後重定向到我的ShowPost操作,該操作通過ChildAction顯示註釋表單,並附帶驗證錯誤。使用TempData時的問題

我擔心的是我實際上重定向兩次,將ModelState錯誤保存到TempData並將它們重新顯示在ChildAction中。這是因爲在我的ShowPost操作中,我還在檢查是否存在與當前帖子匹配的有效slu and,然後重定向以包含該slu if,如果它丟失/不正確。這意味着,如果用戶的訊息上留言,他們發佈到:

/posts/comment 

這將重定向到:

/posts/1/ 

,然後重定向到:顯示註釋錯誤之前

/posts/1/article-title 

。在我的測試服務器上,這對我來說工作正常,但是我會遇到第二次重定向時遇到的任何特定問題嗎?我在問,因爲我讀過的帖子/問題表明TempData需要在重定向後直接使用。如果不是,數據可能會在請求之間丟失,我想知道我的第二次重定向是否會導致這種情況。

+0

你能指出你讀過哪些問題讓你覺得這個嗎?他們需要被低估或評論,因爲自MVC 1以來這已經發生了變化。 – jfar

+0

我最近讀了很多關於TempData的內容,我似乎無法找到給我那種印象的所有資源。然而,其中一個我再次發現是[這] mvc/2968978#2968978)回覆哪些人送我[this](http://www.jeremyskinner.co.uk/2008/10/18/storing-modelstate-in-tempdata-with-aspnet-mvc/)博文。我會繼續搜索我的歷史記錄,看看我能否找到其他來源。絕對有其他人。 –

回答

2

在MVC 2和3中TempData總是可以訪問一次。在訪問給定的鍵後,臨時數據被銷燬。

+0

謝謝你。我不知道這已經改變了新版本的MVC。 –