2012-11-23 62 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]装修,但从来没有确定何时何地使用它们。 –

相关问题