表示される画像を切り替える次のボタンと前のボタンがあるページを作成したいとします。ASP.NET MVC:Ajax.BeginFormを使用した複数の送信ボタン
私はAjax.BeginForm
を作成し、それに画像と2つの送信ボタンを挿入しました。
Ajax.BeginForm
の中に複数の送信ボタンがありますか?
コントローラはどのようにそれぞれ別々に送信するのですか?
表示される画像を切り替える次のボタンと前のボタンがあるページを作成したいとします。ASP.NET MVC:Ajax.BeginFormを使用した複数の送信ボタン
私はAjax.BeginForm
を作成し、それに画像と2つの送信ボタンを挿入しました。
Ajax.BeginForm
の中に複数の送信ボタンがありますか?
コントローラはどのようにそれぞれ別々に送信するのですか?
[HttpPost]
public ActionResult DYmanicControllerPage(RegisterModel model, string ButtonType)
{
if(ButtonType == "Next")
{
// Do Next Here
}
if (ButtonType == "Save")
{
//Do save here
}
return JavaScript("REturn anything()");
}
私はあなたが2つのボタンがあり、その後、フォーム上のアクションを設定することができ、クリックされたものをボタンに依存することをお勧めします:
レイザー
$(function(){
$("#btn-prev").click(function() {
$("#form").attr
(
"action",
"@Url.Action("Action", "Controller", new {area="Area" })",
).submit();
});
$("#btn-next").click(function() {
$("#form").attr
(
"action",
"@Url.Action("Action", "Controller", new {area="Area" })",
).submit();
});
});
私が行うためにここにjQueryを使用していますしかし、私はあなたがそのアイデアを得ることができると思う。
ビュー
@model TwoModelInSinglePageModel.RegisterModel
@using (Ajax.BeginForm("DYmanicControllerPage", "Test", FormMethod.Post,null, new { id = "frmSignUp" }))
{
<div>
<input type="hidden" id="" name="hidden2" id="hdasd" />
@Html.HiddenFor(m => m.hidden1)
@Html.LabelFor(m => m.Name)
@Html.TextBoxFor(m => m.Name)
@Html.ValidationMessageFor(m => m.Name)
</div>
<br />
<div>
@Html.LabelFor(m => m.Address)
@Html.TextBoxFor(m => m.Address)
@Html.ValidationMessageFor(m => m.Address)
</div>
<br />
<div>
@Html.LabelFor(m => m.PhoneNo)
@Html.TextBoxFor(m => m.PhoneNo)
@Html.ValidationMessageFor(m => m.PhoneNo)
</div>
<input type="submit" value="Save" id="btnSave" name="ButtonType"/>
<input type="submit" value="Next" id="btnNext" name="ButtonType" />
}
コントローラ、これを試してみてください、私は私のために仕事の両方を同じ要件/問題があったし、ここでは、両方のソリューションを試してみましたが、彼ら。 jqueryをクリックしてアクションを設定するというアイデアが好きなので、他のビューでも使用できるようにアクションを分けておくことができます。
私はデバッグ中にこれを行うと、TWICEとの両方が投稿されました。 OnSuccessとOnFailureがトリガーされています。それは、しかし、デバッグ時にのみ発生します。ピッキングするときは、このことを念頭に置いてください。
ちょうどメモ:それはデバッグのときだけでなく、通常起こります。私はアクションが実行されるたびにタイムスタンプを記録するtxtファイルを持っていました。デバッグかどうか、私はjquery ....を介してフォームのアクションを設定するときに私は2行が書かれているが、アクションがハードコードされたときに、それは1行しか書いていません。理由がわかるまで、これは安全な方法ではないかもしれません。 – citronsmurf
また、私はAjaxについて多くの芸術家を見つけました.Beginformのダブル投稿。彼らはすべて、邪魔にならないjavascriptのJSファイルを、事故で2回追加した人たち(一度は部分ビューとマスターレイアウトで1回)に関係していました。これは私には当てはまりませんでした。だから私はなぜこれが起こっているのか分かりません。私は本当にjqueryメソッドを動作させたいので、引き続き調べます – citronsmurf
このアクションで得たモデルは、ページの値を保持していません。それは自然ですか? – kroiz
@kroiz申し訳ありません私はあなたが何をしようとしているのか理解できません。 – Jaimin
ありがとうございますが、これはこれのための場所ではありません、私は新しい質問を開始します。上記のアクション "DYmanicControllerPage"、モデル "RegisterModel model"では、名前、アドレス、フォネノのようなフォームからデータを取得することになっていますか? – kroiz