我在一个表单中有两个提交按钮。我想在两个按钮中调用不同的动作。有没有办法在不使用JavaScript的情况下完成此任务。
答案 0 :(得分:6)
如果没有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();
}
答案 1 :(得分:4)
为按钮指定不同的名称属性。然后在您的视图处理程序(或等效的 - 抱歉,而不是ASP.NET MVC人员)中,您可以检查该按钮的名称是否在HTTP响应中并相应地执行。
响应中只应存在一个提交按钮名称。
答案 2 :(得分:3)
当然有! 例如,我们有以下形式:
<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。取决于用户按下了什么。