1. ホーム
  2. asp.net

[解決済み] HTTPPOSTからフォームの値を取得する方法、辞書または?

2022-05-15 11:41:19

質問

MVCコントローラで、このようなアクションメソッドがあります。

[HttpPost]
public ActionResult SubmitAction()
{
     // Get Post Params Here
 ... return something ...
}

単純なテキストボックスを持つ、自明でないフォームです。

質問内容

パラメータ値にアクセスする方法を教えてください。

私はViewから投稿しているわけではなく、投稿は外部から来ています。私がアクセスできるキーと値のペアのコレクションがあると仮定しています。

私は Request.Params.Get("simpleTextBox"); を試してみましたが、エラー "Sorry, an error occurred while processing your request." が返されました。

どうすればよいですか?

コントローラのアクションに、フォームの入力名を反映したオブジェクトを受け取らせれば、デフォルトのモデルバインダーが自動的にこのオブジェクトを生成してくれるでしょう。

[HttpPost]
public ActionResult SubmitAction(SomeModel model)
{
    var value1 = model.SimpleProp1;
    var value2 = model.SimpleProp2;
    var value3 = model.ComplexProp1.SimpleProp1;
    ...

    ... return something ...
}

もう一つの(明らかに醜い)方法は

[HttpPost]
public ActionResult SubmitAction()
{
    var value1 = Request["SimpleProp1"];
    var value2 = Request["SimpleProp2"];
    var value3 = Request["ComplexProp1.SimpleProp1"];
    ...

    ... return something ...
}