8

ビューに 3 つのボタン (追加、保存、キャンセル) が必要です。これらのボタンをクリックすると、コントローラーの関連するメソッドがヒットするはずです。MVC3でボタンクリックイベントを達成するにはどうすればよいですか? 誰かが私に例を提供できますか? より良い方法があれば提案してください。

4

3 に答える 3

9

MVC 3 にはサーバー側のボタン クリック イベントはありません。返されたフォームの値に基づいて、どのボタンがクリックされたかを判断する必要があります。詳細については、このブログ投稿をご覧ください -

http://weblogs.asp.net/dfindley/archive/2009/05/31/asp-net-mvc-multiple-buttons-in-the-same-form.aspx

于 2011-08-25T16:14:54.370 に答える
7

私は ASP.NET MVC を初めて使用しますが、これを解決する方法は、フォームにいくつかのボタンを配置し、それぞれにクラスを指定してから、それらのデータ パラメーターを指定することでした。この例では、最初のボタンの項目 Val1 と Val2 から 2 つのプロパティを取得し、2 番目のボタンの 2 つのプロパティ、Val1 と Val3 を取得します。

<input type="button" value="Button 1" class='button1' data-val1="@item.Val1" data-val2="@item.Val2"/>

<input type="button" value="Button 2" class='button2' data-val1="@item.Val1" data-val2="@item.Val3"/>

次に、jquery を使用してクリック イベントを処理し、呼び出すアクションを指定しました。

<script type="text/javascript">
  $(function () {
     $('.button1').click(function () {
        var Val1 = $(this).data('val1');
        var Val2 = $(this).data('val2');
        $.ajax({
           type: "POST",
           data: "val1=" + Val1 + "&val2=" + Val2,
           url: '@Url.Action("MyAction", "MyController")',
           dataTyp: "html",
           success: function (result) {
              // whatever I did here on success
           }
        });
     });
  });

// rinse and repeat for the other button, changing the parameters and the action called.
</script>

これは私のニーズにはかなりうまくいくようでした。

于 2011-08-25T16:28:18.440 に答える