私はasp.net mvcが初めてです。基本的に私はphpプログラマー出身です。私のphpファイルでは、echo $_POST;
またはprint_r($_POST);
またはを使用して、htmlページまたはフォームからのすべての値を表示できますvar_dump($_POST)
。しかし、asp.netでは、UIページからコントローラーに送られるすべての値を確認するためにこれをどのように達成できますか。
3 に答える
あなたはRequest.Form
プロパティを見ることができます:
public ActionResult SomeAction()
{
var values = Request.Form;
...
}
ブレークポイントを設定して、値を分析できます。または、ブラウザーの JavaScript 開発ツールバー (FireBug や Chrome 開発者ツールバーなど) を使用して、サーバーに何が送信されるかを正確に確認します。
しかし、通常、生の値に直接アクセスすることは想定されていません。ASP.NET MVC には、サーバーに送信された値に基づいてモデルをインスタンス化できるモデル バインダーがあります。
たとえば、次のモデルを使用できます。
public class MyViewModel
{
public int Age { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
}
次に、コントローラー アクションにこのモデルをパラメーターとして使用させます。
public ActionResult SomeAction(MyViewModel model)
{
... you could use the model properties here
}
/someaction?age=10&firstname=foo&lastname=bar
これで、クエリ文字列 ( ) でパラメーターを渡す GET 要求を使用して、または POST を使用して本文でそれらを送信することにより、このコントローラー アクションを呼び出すことができます。
経由で生データを確認できますRequest.Form
。
しかし、これは ASP.NET MVC の精神ではありません。コントローラーにモデルを期待することをお勧めします。モデル バインダーと呼ばれる特別なモジュールによって、すべてのタイプ セーフティ マッピングが既に行われています。
したがって、特別なケースに取り組まない限り、コントローラ アクションにモデルを追加するだけです。
public ActionResult SomeAction(SomeModel model)
{
//Handle SomeModel data further ...
}
次のように、UI ページからパラメーターを受け入れるアクションを作成できます。
[HttpPost]
public ActionResult SomeAction(string param1, int param2)
{
//Now you can access the values here
}
または、モデルを受け入れるアクションを作成します
public ActionResult SomeAction(SomeModel model)
{
//Access the model here
}