5

アクションリストを取得しました

    //[HttpGet] (will come back to that!)
    public ViewResult List(int page = 1)
    {
        //blah blah blah
        return View(viewModel);
    }

そのビューでは、アクションをレンダリングします。

@{        
    Html.RenderAction("UpdateSearch");
}

アクションの定義:

[ChildActionOnly]
[HttpGet]
public PartialViewResult UpdateSearch()
{
    // do something and display a form in view
    return PartialView(so);
}

[HttpPost]
public RedirectToRouteResult UpdateSearch(Options searchOptions)
{
    // do something and redirect to List
    return RedirectToAction("List");
}

そして私は得ています:子アクションは、誰かがフォームを送信するたびにリダイレクトアクションの例外を実行することは許可されていません. 私はMVC3を初めて使用しますが、リダイレクトもPOSTのようです.Listメソッドの上の[HttpGet]がコメント解除されていると「リソースが見つかりません」が発生するためです。

リダイレクト時に Http メソッドを変更するにはどうすればよいですか、それとも何か間違っていますか? 私はそれをBingしようとしましたが、成功しませんでした。

4

1 に答える 1

3

リダイレクト情報は応答ヘッダーに保存されます。ただし、子アクションの実行時に応答が既に送信されているため、ヘッダーを書き込むことはできません。

つまり、クライアント側で JavaScript を使用する以外に、子アクションからのリダイレクトを実行する方法はありません。

于 2012-03-20T15:24:04.300 に答える