【MVC5】画面多按钮提交

画面上有个多个按钮时,如何绑定到各自的Action上?

1.追加如下MultipleButtonAttribute

 1 using System;
 2 using System.Reflection;
 3 using System.Web.Mvc;
 4
 5 namespace DailyReportSystem.Attribute
 6 {
 7     [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
 8     public class MultipleButtonAttribute : ActionNameSelectorAttribute
 9     {
10         public string Name { get; set; }
11         public string Argument { get; set; }
12
13         public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
14         {
15             var isValidName = false;
16             var keyValue = string.Format("{0}:{1}", Name, Argument);
17             var value = controllerContext.Controller.ValueProvider.GetValue(keyValue);
18
19             if (value != null)
20             {
21                 controllerContext.Controller.ControllerContext.RouteData.Values[Name] = Argument;
22                 isValidName = true;
23             }
24
25             return isValidName;
26         }
27     }
28 }

2.Razor(给按钮追加name属性,值的格式为【{Name}:{Argument}】)

<form action="" method="post">
 <input type="submit" value="Save" name="action:Save" />
 <input type="submit" value="Cancel" name="action:Cancel" />
</form>

3.Controller(参数Name和Argument对应按钮的name属性值)

[HttpPost]
[MultipleButton(Name = "action", Argument = "Save")]
public ActionResult Save(MessageModel mm) { ... }

[HttpPost]
[MultipleButton(Name = "action", Argument = "Cancel")]
public ActionResult Cancel(MessageModel mm) { ... }

原文地址:http://stackoverflow.com/questions/442704/how-do-you-handle-multiple-submit-buttons-in-asp-net-mvc-framework

时间: 2024-10-12 15:55:26

【MVC5】画面多按钮提交的相关文章

ASP.NET MVC中实现多个按钮提交的几种方法

有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能,比如一个简单的审批功能. 如果是用webform那不需要讨论,但asp.net mvc中一个表单只能提交到一个Action处理,相对比较麻烦点. 方法一:使用客户端脚本 比如我们在View中这样写: <inputtype="submit"value="审核通过"onclick='this.form.action="<%=Url.Action("Action1")

转:MVC单表多按钮提交

有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能,比如一个简单的审批功能. 如果是用webform那不需要讨论,但asp.net mvc中一个表单只能提交到一个Action处理,相对比较麻烦点. 方法一:使用客户端脚本 比如我们在View中这样写: [c-sharp] view plain copy print? <input type="submit" value="审核通过"  onclick='this.form.action="

ASP.NET MVC实现多个按钮提交事件

有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能,比如一个简单的审批功能. 如果是用webform那不需要讨论,但asp.net mvc中一个表单只能提交到一个Action处理,相对比较麻烦点. 方法一:使用客户端脚本 比如我们在View中这样写: 1 2 3 <input type="submit" value="审核通过"  onclick='this.form.action="<%=Url.Action("Acti

MVC中实现多按钮提交(转)

有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能,比如一个简单的审批功能. 如果是用webform那不需要讨论,但asp.net mvc中一个表单只能提交到一个Action处理,相对比较麻烦点. 方法一:使用客户端脚本 比如我们在View中这样写: [c-sharp] view plaincopyprint? <input type="submit" value="审核通过"  onclick='this.form.action="&l

关于ASP.NET中按钮提交后textbox不能赋值的问题

在一个项目的页面中,TextBox的Text属性是动态绑定的,如果点击按钮将Textbox中的Text提交数据库时,发现Text的值总是动态绑定的值,不会更改. 这个的主要原因主要是按钮提交的时候页面重新载入,Textbox的值再次被动态绑定,其值更新为原值,造成Text的值不能更新的假象. 这个问题的解决方法可以在页面载入的时候添加IsPostBack判断,根据条件来确定是否动态绑定. 代码如下: if(!IsPostBack) { Page.DataBind(); } 关于ASP.NET中按

【MVC】ASP.NET MVC中实现多个按钮提交的几种方法

有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能,比如一个简单的审批功能. 如果是用webform那不需要讨论,但asp.net mvc中一个表单只能提交到一个Action处理,相对比较麻烦点. 使用客户端脚本 <input type="submit" value="审核通过" onclick='this.form.action="<%=Url.Action("Action1") %>";' /

如何阻止form表单中的button按钮提交

<form action="#" method="post"> <input type="text" name="username" class="username" placeholder="请输入您的用户名!"> <input type="password" name="password" class="

angularjs解决方案之 Form表单中按钮提交

在form表单中如果有子表时,子表中的按钮默认的提交方式是submit,如果不这是btn的类型为button的话,点击子表按钮操作时,主表单也是会提交的. <button class="'+ n.btnClass +'" type="button" ng-click="operationRow(\''+meta.row+'\')">'  +<i class="'+ n.iClass +'"></i

按钮提交form表单 js

大家好: 今天在修改项目的时候遇到了个问题,就是点击按钮使用form表单提交信息! <span style="font-size:14px;"><form name="searchForm" id="searchForm" method="post" action="${ctx}/heInfo/getHeInfoList" > <h2 class="page_head