web-dev-qa-db-ja.com

MVCボタンクリックしてアクション

重複の可能性:
Mvc Html.ActionButton

ASP.NET MVC 3アクションメソッドへのリンクを非常に簡単に作成する方法を知っていますが、知りたいのは、ボタン(クリックされたとき)に特定のアクションメソッドを呼び出す方法です。

5
Sachin Kainth

サチン、

Jqueryを使用している場合(これについては触れませんが、mvcではかなり標準的であるため、ここで説明します)、次のようにします。

$('#buttonId').click(function(){
   document.location = '@Url.Action("MyAction","MyController")';
});

もちろん、おそらくajaxを使用したいと思うでしょうが、これは基本的な例です。

22
jim tollan

Htmlを使用できます<form>

@using (Html.BeginForm("SomeAction", "SomeController", FormMethod.Get))
{
    <input type="submit" value="Click me" />
}
15
Darin Dimitrov

フォームのGETメソッドの使用に関するDarinの回答に加えて、JavaScript関数を呼び出して、アクションを呼び出すこともできます。

クリックされたときにボタンクリックイベントをインターセプトして、独自のコードを実行できます。そのコードは、Ajaxを使用して非同期でアクションを呼び出すか、単にアクションメソッドに移動することができます

ボタンクリックイベントをインターセプトするサンプルJavaScriptは次のとおりです

$(document).ready(function () {

    myButton.onclick = function (event) {
        // in here you can call an ajax method or just navigate to an action 
        return false;
    }

    // or using jQuery
    $('#myButton').click(function (e) {
        // do whatever here
        e.preventDefault;
    });
});

または、href属性を持つボタンをインターセプトできます

$(function () {
     $("#myButton").click(function () {
         var href = $(this).attr("href");
         var route = href + "?paramName=" + $('#SomeValue').val();
         $(this).attr("href", route);
     });
});

これにより、ページの別の入力に保存した可能性のあるパラメーター情報が追加され、それがURLに追加されてから、アクションに移動します。

4
CD Smith

どうやってやるの? MVCを使用しない場合と同じ方法です。

<INPUT TYPE="BUTTON" VALUE="Home Page" ONCLICK="window.location.href='/Controller/Action'"> 
4
David