2012-11-23 65 views
0

當調用帶有條形碼參數的方法時,RedirectToAction完全沒有效果。我可以看到它確實返回到URL中的該路線,但該模型未刷新並顯示陳舊的數據。爲什麼RedirectToAction沒有效果

在SQL Server分析器中,我可以看到該調用沒有被撤回新數據。

我該如何強制這種情況發生?

令人難以置信的是,呼叫:public ActionResult SRScanItem(string barcode)本身就是來自另一個控制器的RedirectToAction的結果。

我有幾個電話RedirectToAction("SRPickCollectionItems")其他地方在同一個控制器,這些都工作正常。

任何想法可能會導致此?

public ActionResult SRPickCollectionItems() 
{ 
    IEnumerable<ISRPickingItemSummary> items = 
     SRPickingItemsViewModel. 
     GetDisplayableChunk(ApplicationState.CollectionId.ToString(), 
          ApplicationState.AssistantNumber); 

    return View(items);    
} 

public ActionResult SRScanItem(string barcode) 
{ 
    DataLayer.Instance.AddStockroomFoundItem(barcode, ApplicationState.CollectionId, ApplicationState.AssistantNumber); 
    return RedirectToAction("SRPickCollectionItems"); 
} 

回答

2

也許重定向進入緩存頁面。

你能試着和

[OutputCache(Duration = 0)] 
+0

你絕對的鑽石 - 已整理它... –

1

裝飾SRPickCollectionItems你似乎不返回到POST方法,只有獲得,因此並不明顯如何與重定向的方法獲取調用,除非你是通過動作鏈接或鏈接標籤將條形碼作爲get調用中的查詢字符串參數發送。

通常,您將有兩個名爲SRPickCollectionItems的方法。 Get方法(你已經擁有)加載視圖和post方法(你缺少的)來處理回發。後期的方法將因此...

[HttpPost] 
public ActionResult SRPickCollectionItemsstring barcode){ 
    DataLayer.Instance.AddStockroomFoundItem(barcode, ApplicationState.CollectionId,    ApplicationState.AssistantNumber); 
    return RedirectToAction("SRPickCollectionItems"); 
} 
+0

非常感謝您的提示。我已經看到了我見過的代碼的各種比特[HttpPost]裝修,但從來沒有確定何時何地使用它們。 –

相關問題