如何在表单中放置两个提交按钮

时间:2010-10-26 06:12:46

标签: asp.net-mvc

我在一个表单中有两个提交按钮。我想在两个按钮中调用不同的动作。有没有办法在不使用JavaScript的情况下完成此任务。

3 个答案:

答案 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。取决于用户按下了什么。

相关问题