2015-12-22 53 views
-1

我有這個方法。當重定向到除root之外的其他url時,TempData爲空,爲什麼?

 public ActionResult SetTempDataToChangeVendor(int vendorId, string url) 
     {    
      TempData["ChangeVendor"] = vendorId; 
      if (url == null) return Redirect("/"); 

      var slug = _urlRecordRepository.Table.FirstOrDefault(s => s.Slug == url); 

      if (slug == null) RedirectToAction("PageNotFound", "Common"); 

      return Redirect("/" + url); 
     } 

它在重定向到/時工作得很好。但是當我提供的TempData的url是空的,我不明白爲什麼。

+0

你沒有讓自己很清楚。你能否詳細說明你有什麼問題?你的問題是什麼? – Fabjan

+1

它應該工作。你確定你沒有在某個地方讀過它嗎?一旦讀取,TempData將爲空 – Shyju

+0

我只記得,我們有一個自定義的路由控制器,所以當它重定向到url時,它實際上是兩個重定向。認爲我可以通過在路由控制器中讀取它並使用keep方法來解決此問題。無論如何,謝謝你的模糊問題。 – jinxen

回答

0

TempData是一個存儲區,您可以轉儲僅用於以下請求的數據。也就是說,在下一個請求完成後,放入TempData的任何內容都將被丟棄。

+0

'TempData'在讀取之前仍然可以用於重定向。 – Shyju

相關問題