web-dev-qa-db-ja.com

MVC3ボタンクリックイベント

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

8
TJK

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

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

9
ipr101

私はASP.NETMVCを初めて使用しますが、これを解決する方法は、フォームにいくつかのボタンがあり、それぞれにクラスを指定してから、それらのデータパラメーターを指定することでした。この例ではいくつかのアイテム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>

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

7
itsmatt

以下のボタンクリックイベントは、コントローラーのreleventactionResultメソッドにヒットします

      <input type="button" name="button" id="btnadd" value="Add" onclick="location.href='@Url.Action("ActionResultName", "ControllerName")'" >
1
kavitha Reddy