0

当调用带有条形码参数的方法时,RedirectToAction 完全没有任何作用。我可以看到它确实返回到 URL 中的那个路由,但是模型没有刷新并且它显示陈旧的数据。

在 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");   
}
4

2 回答 2

2

也许重定向将转到缓存页面。

你能试着用 SRPickCollectionItems 来装饰吗

[OutputCache(Duration = 0)]
于 2012-11-23T16:41:15.823 回答
1

您似乎没有返回 post 方法,只有 get ,因此除非您通过 actionlink 或链接标记在 get 调用中将条形码作为查询字符串参数发送,否则如何调用带有 Redirect 的方法并不明显.

通常你会有两个名为 SRPickCollectionItems 的方法。Get 方法(您已经拥有)加载视图,而 post 方法(您缺少)处理回发。post方法将是......

[HttpPost]
public ActionResult SRPickCollectionItemsstring barcode){
    DataLayer.Instance.AddStockroomFoundItem(barcode, ApplicationState.CollectionId,              ApplicationState.AssistantNumber);
    return RedirectToAction("SRPickCollectionItems");   
}
于 2012-11-24T09:00:54.607 回答