重複の可能性:
Mvc Html.ActionButton
ASP.NET MVC 3
アクションメソッドへのリンクを非常に簡単に作成する方法を知っていますが、知りたいのは、ボタン(クリックされたとき)に特定のアクションメソッドを呼び出す方法です。
サチン、
Jqueryを使用している場合(これについては触れませんが、mvcではかなり標準的であるため、ここで説明します)、次のようにします。
$('#buttonId').click(function(){
document.location = '@Url.Action("MyAction","MyController")';
});
もちろん、おそらくajaxを使用したいと思うでしょうが、これは基本的な例です。
Htmlを使用できます<form>
:
@using (Html.BeginForm("SomeAction", "SomeController", FormMethod.Get))
{
<input type="submit" value="Click me" />
}
フォームの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に追加されてから、アクションに移動します。
どうやってやるの? MVCを使用しない場合と同じ方法です。
<INPUT TYPE="BUTTON" VALUE="Home Page" ONCLICK="window.location.href='/Controller/Action'">