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またはlinkタグを介してget呼び出しでクエリ文字列パラメーターとしてバーコードを送信しない限り、リダイレクトを使用するメソッドがどのように呼び出されるかは明らかではありません。 。

通常、SRPickCollectionItemsという名前の2つのメソッドがあります。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 に答える