我是 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 但我想为所有提交按钮提供不同的名称。可能吗?
我想知道有没有其他方法可以处理这种情况。所以请用示例代码讨论所有其他方式来处理这种情况。谢谢
更新
我看到另一个人用下面的方式处理同样的问题。给出了代码,但我不明白他的把戏。他为一个提交按钮添加了一个隐藏字段...为什么?他将按钮值属性设置为 true,并将相应隐藏字段的值属性设置为 false……为什么我就是无法理解这个技巧。
另一个问题是何时调用 action 方法,然后如何传递 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?)
请检查您的代码并告诉我为什么它不起作用。谢谢