2010-10-26 89 views

回答

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(); 
} 
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。取决于用户按下了什么。

+0

相关,但不是为asp.net的MVC – dvhh 2010-10-26 06:21:47

+0

我认为你需要编辑你的文章,并展示如何区分服务器端代码和其他文件。答案只是问题的一半。 – awrigley 2010-10-26 11:46:22

4

给按钮不同的名称属性。然后在您的视图处理程序(或等效 - 抱歉,不是ASP.NET MVC人员)中,您可以检查该按钮的名称是否在HTTP响应中,并相应地执行。

只有一个提交按钮名称应该存在于响应中。

相关问题