【发布时间】:2010-10-26 06:12:45
【问题描述】:
我在一个表单中有两个提交按钮。我想在两个按钮中调用不同的操作。有什么方法可以在不使用 JavaScript 的情况下完成此操作。
【问题讨论】:
标签: asp.net-mvc
我在一个表单中有两个提交按钮。我想在两个按钮中调用不同的操作。有什么方法可以在不使用 JavaScript 的情况下完成此操作。
【问题讨论】:
标签: asp.net-mvc
如果没有 javascript,就无法调用不同的操作。您可以调用相同的控制器操作,并在此操作中使用 name 属性确定按下了哪个按钮:
<% using (Html.BeginForm()) { %>
<input type="submit" name="save" value="Save" />
<input type="submit" name="update" value="Update" />
<% } %>
在你的控制器动作中:
[HttpPost]
public ActionResult Index(string save)
{
if (!string.IsNullOrEmpty(save))
{
// the save button was pressed
}
else
{
// the update button was pressed
}
return View();
}
【讨论】:
为按钮赋予不同的名称属性。然后在您的视图处理程序(或等效的 - 抱歉,不是 ASP.NET MVC 人员)中,您可以检查该按钮的名称是否在 HTTP 响应中并采取相应措施。
响应中应仅存在一个提交按钮名称。
【讨论】:
当然有! 例如,我们有以下形式:
<form>
<input name='customer_name' type='text'/>
<input name='update_user' type='submit' value='Update user info'/>
<input name='delete_user' type='submit' value='Delete user'/>
</form>
当服务器收到表单请求时,集合中只存在一个参数:update_user 或 delete_user。取决于用户按下了什么。
【讨论】: