1. ホーム
  2. c#

[解決済み] MVC どのサブミットボタンが押されたのか

2022-06-06 11:28:16

質問

MVCのフォームに2つのボタンがあります。

<input name="submit" type="submit" id="submit" value="Save" />
<input name="process" type="submit" id="process" value="Process" />

コントローラのアクションから、どれが押されたかを知るにはどうしたらよいでしょうか?

どのように解決するのですか?

送信ボタンの名前を同じにする

<input name="submit" type="submit" id="submit" value="Save" />
<input name="submit" type="submit" id="process" value="Process" />

次に、コントローラでsubmitの値を取得します。クリックされたボタンだけがその値を渡します。

public ActionResult Index(string submit)
{
    Response.Write(submit);
    return View();
}

もちろんその値を評価し、スイッチブロックで別の操作を行うこともできます。

public ActionResult Index(string submit)
{
    switch (submit)
    {
        case "Save":
            // Do something
            break;
        case "Process":
            // Do something
            break;
        default:
            throw new Exception();
            break;
    }

    return View();
}