0

シナリオ:Index.cshtmlフォームをコントローラー アクション ( と呼びましょう) に投稿するビュー ( と呼びましょうGetWorkList) があります。

GetWorkListが実行され、部分ビューが返されますWorkReport。その後、ユーザーはModifyDurationアクションを介して一部のデータを変更および保存できます。これにより、返されるはずGetWorkListです (上記と同じ)。Error loading pageその後、部分ビューは正常に更新されますが、ページが完全に読み込まれる前に消えるというエラー メッセージが表示されます。

このエラー メッセージが表示されないようにするにはどうすればよいですか?

コントローラーコード:

  [HttpGet]
    public ActionResult Index()
    {
        return View();
    }

    [HttpGet]
    public PartialViewResult GetWorkList(string date)
    {
     .....instructions
       return PartialView("WorkReport", model);
    }

      [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult ModifyDuration(string newDuration, string id, string date)
    {
       .....instructions
      return RedirectToAction("GetWorkList", new
        {
            date = date
        });
    }

ブラウザが示すエラー:

モジラエラー

4

1 に答える 1

2

ビューを見ずに特定するのは難しいですが、POST リクエストの一部としてレンダリングされたビュー内から部分ビューを呼び出しているため、エラーが発生しているように見えます (get リクエストは成功しますが、post リクエストは失敗します)。あなたのコントローラ コードには、Post リクエスト内でビューをレンダリングしていることを示唆するものは何もありませんが、これ以上の説明は思いつきません。例えば:

[HttpPost]
public ActionResult DoSomething() 
{
    ...
    return View(Index);
}

そしてあなたの中にIndex.cshtml

@Html.Action("GetWorkList")

これは、同じように失敗することがわかった例です。ビューはポスト リクエストのコンテキストでレンダリングされたため、部分ビューも取得ではなくポスト リクエストとして呼び出されます。

于 2013-01-29T03:19:37.877 に答える