在ASP.NET MVC框架中处理多个提交按钮
ASP.NET Core MVC框架允许在单个表单中使用多个提交按钮。这提供了根据点击的按钮执行不同操作的灵活性。
处理多个提交按钮的一种方法是基于属性的路由。以下是一个示例:
属性:
<code class="language-csharp">[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)] public class MultipleButtonAttribute : ActionNameSelectorAttribute { public string Name { get; set; } public string Argument { get; set; } public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo) { bool isValidName = false; string keyValue = string.Format("{0}:{1}", Name, Argument); ValueProviderResult value = controllerContext.Controller.ValueProvider.GetValue(keyValue); if (value != null) { controllerContext.Controller.ControllerContext.RouteData.Values[Name] = Argument; isValidName = true; } return isValidName; } }</code>
Razor视图:
(此处应包含实际的Razor代码,展示包含“Save”和“Cancel”两个提交按钮的表单。由于原文未提供,此处无法补充。)
控制器:
<code class="language-csharp">[HttpPost] [MultipleButton(Name = "action", Argument = "Save")] public ActionResult Save(MessageModel mm) { /* 保存操作 */ } [HttpPost] [MultipleButton(Name = "action", Argument = "Cancel")] public ActionResult Cancel(MessageModel mm) { /* 取消操作 */ }</code>
通过此设置,“Save”按钮提交将调用“Save”操作,“Cancel”按钮提交将调用“Cancel”操作。
Razor Pages的更新:
在Razor Pages中,开箱即用地提供了相同的功能。无需使用属性,您可以使用以下语法:
(此处应包含实际的Razor Pages代码,展示包含“Save”和“Cancel”两个提交按钮的表单,以及如何通过@page
指令处理。由于原文未提供,此处无法补充。)
在您的页面处理程序中,您可以通过表单集合中的“submit-button”键访问提交的按钮值。
以上是如何处理ASP.NET MVC中的多个提交按钮?的详细内容。更多信息请关注PHP中文网其他相关文章!