Razorのビューには、フォームの中に3つのボタンがあります。すべてのボタンのアクションは、フォームの値を必要とし、それは基本的に入力フィールドの値です。
どのボタンをクリックしても、デフォルトのアクションにリダイレクトされてしまいます。どのようにすれば、ボタンを押したときに異なるアクションにフォームを送信することができるのか、教えていただけますか?
お時間とご指導、ご協力に感謝いたします。
これも試してみてください。
<input type="submit" name="submitbutton1" value="submit1" />
<input type="submit" name="submitbutton2" value="submit2" />
そして、あなたのデフォルト関数の中で、あなたが望む関数を呼び出します。
if( Request.Form["submitbutton1"] != null)
{
// Code for function 1
}
else if(Request.Form["submitButton2"] != null )
{
// code for function 2
}
眺めていると
<form action="/Controller_name/action" method="Post>
<input type="submit" name="btn1" value="Ok" />
<input type="submit" name="btn1" value="cancel" />
<input type="submit" name="btn1" value="Save" />
</form>
アクションで
string str =Request.Params["btn1"];
if(str=="ok"){
}
if(str=="cancel"){
}
if(str=="save"){
}
JS+Ajaxを使うことができます。 例えば、ボタンがある場合、クリックイベントで何をしなければならないかを指定することができます。 ここにコードがあります。
<input id="btnFilterData" type="button" value="myBtn">
ここでは、ボタンをHTMLで記述します。 スクリプトセクションでは、このコードを使用する必要があります(このセクションはドキュメントの最後にあるべきです)。
<script type="text/javascript">
$('#btnFilterData').click(function () {
myFunc();
});
</script>
そして最後に、ajax機能を追加する必要があります(別のスクリプトセクションで、これはドキュメントの最初に配置する必要があります)。
function myFunc() {
$.ajax({
type: "GET",
contentType: "application/json",
url: "/myController/myFuncOnController",
data: {
//params, which you can pass to yu func
},
success: function(result) {
error: function (errorData) {
}
});
};