私はmvcが初めてです。私はこの方法で複数の送信ボタンを同じフォームで処理できることを知っています。
<%
using (Html.BeginForm("LoginRegistration", new { action = "LoginRegistration", controller = "Register"}, FormMethod.Post, new { @class = "form", id = "formId" }))
{
%>
//your html code here
<input type="submit" name="submitButton" value="Login"/>
<input type="submit" name="submitButton" value="Register"/>
<% }%>
[HttpPost]
public ActionResult LoginRegistration(string submitButton)
{
switch (submitButton)
{
case "Login":
return RedirectToAction("Login");
case "Register":
return RedirectToAction("Register");
default:
return null;
}
}
私の場合、すべての送信ボタンにsubmitButtonというボタン名を付ける必要がありますが、すべての送信ボタンに別の名前を付けたいです。出来ますか?
この状況を処理する他の方法があるかどうかを知りたいです。したがって、この状況を処理するために、サンプル コードを使用して他の方法で議論してください。ありがとう
アップデート
別の人が同じ問題を以下の方法で扱っているのを見ました。コードは示されていますが、彼のトリックがわかりません。彼は 1 つの送信ボタンに 1 つの非表示フィールドを追加します...なぜですか? 彼はボタンの値のプロパティを true に設定し、対応する非表示フィールドの値のプロパティを false に設定しました...なぜ私はこのトリックを理解できなかったのですか。
もう 1 つの問題は、アクション メソッドがいつ呼び出されるか、次に bool 値がどのように渡され、どのコントロールの bool 値が渡されるかということです。この更新されたコードを調べて、このコードがどのように機能するかを詳細に説明してください。ありがとう
<%
using (Html.BeginForm("LoginRegistration", new { action = "LoginRegistration", controller = "Register"}, FormMethod.Post, new { @class = "form", id = "formId" }))
{
%>
//your html code here
<button type="submit" name="login" value="true">Login</button>
<input type="hidden" name="login" value="false"/>
<button type="submit" name="register" value="true">Register</button>
<input type="hidden" name="register" value="false"/>
<% }%>
[HttpPost]
public ActionResult LoginRegistration(bool login, bool register)
{
if (login) return RedirectToAction("Login");
else if (register) return RedirectToAction("Register");
}
アップデート
私の見方はどのように見えるか
<div id="mydiv">
@using (Html.BeginForm("MultipleSubmitBtn", "MultipleSubmitBtn", FormMethod.Post, new { @Id = "Form1" }))
{
<table border="0">
<tr>
<td colspan="2">
<button type="submit" id="b1" value="true"> 1 </button>
<button type="submit" id="b2" value="true"> 2 </button>
<button type="submit" id="b3" value="true"> 3 </button>
<button type="submit" id="b4" value="true"> 4 </button>
<button type="submit" id="b5" value="true"> 5 </button>
<input type="hidden" id="b1" value="false" />
<input type="hidden" id="b2" value="false" />
<input type="hidden" id="b3" value="false" />
<input type="hidden" id="b4" value="false" />
<input type="hidden" id="b5" value="false" />
</td>
</tr>
</table>
}
</div>
コントローラーコード
public class MultipleSubmitBtnController : Controller
{
[HttpPost]
public ActionResult MultipleSubmitBtn(string b1, string b2, string b3, string b4, string b5)
{
return View();
}
}
この構文のように使用すると、エラーが発生しました
public ActionResult MultipleSubmitBtn(string? b1, string? b2, string b3?, string b4?, string b5?)
コードを確認して、なぜ機能しないのか教えてください。ありがとう