4

私のページには簡単なフォームがあります。送信されると、有効かどうかを確認し、ModelState.IsValid有効でない場合は同じモデルのビューを返します。

同じページで、次のような別のフォームを含むアクションをレンダリングしています。

Html.RenderAction("AccountNote", new { id = Model.ID });

自分のページでフォームを送信して検証が失敗するまで、すべてが正常に機能します。ページが再び表示されると、Get イベントが発生すると予想されるときに、AccountNote アクションの Post イベントが発生します。ビューをレンダリングしているのは post that アクションであるため、なぜそれが起こっているのかは理にかなっていると思いますが、代わりに Get イベントを発生させたいと思います。

public ActionResult AccountNote(int id)
{
    //code goes here...

     return PartialView(model);
}

[HttpPost]
public ActionResult AccountNote(AccountNoteViewModel model)
{
    //code goes here...

    return PartialView(model);
}

私は何か間違ったことをしていますか?それとも、これを機能させるために私がしなければならないトリックがありますか? Html.RenderAction は常に POST ではなく GET を想定していると思います。

4

3 に答える 3

1

私が知っているので、そのままではこの問題の解決策はありません。RenderAction および Action メソッドでは、現在の要求を考慮して、どの動詞を使用するかを決定します。ただし、名前を変更することはできます。たとえば、HttpPost に制限されている名前を AddAccountNote に変更し、もう 1 つは動詞を指定せずに現在の名前のままにします。

于 2014-02-28T06:06:10.853 に答える