首页 > 后端开发 > C++ > 如何处理ASP.NET MVC中的多个提交按钮?

如何处理ASP.NET MVC中的多个提交按钮?

Barbara Streisand
发布: 2025-02-01 10:36:09
原创
293 人浏览过

How to Handle Multiple Submit Buttons in ASP.NET MVC?

在ASP.NET MVC框架中处理多个提交按钮

ASP.NET Core MVC框架允许在单个表单中使用多个提交按钮。这提供了根据点击的按钮执行不同操作的灵活性。

处理多个提交按钮的一种方法是基于属性的路由。以下是一个示例:

属性:

[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;
    }
}
登录后复制

Razor视图:

(此处应包含实际的Razor代码,展示包含“Save”和“Cancel”两个提交按钮的表单。由于原文未提供,此处无法补充。)

控制器:

[HttpPost]
[MultipleButton(Name = "action", Argument = "Save")]
public ActionResult Save(MessageModel mm) { /* 保存操作 */ }

[HttpPost]
[MultipleButton(Name = "action", Argument = "Cancel")]
public ActionResult Cancel(MessageModel mm) { /* 取消操作 */ }
登录后复制

通过此设置,“Save”按钮提交将调用“Save”操作,“Cancel”按钮提交将调用“Cancel”操作。

Razor Pages的更新:

在Razor Pages中,开箱即用地提供了相同的功能。无需使用属性,您可以使用以下语法:

(此处应包含实际的Razor Pages代码,展示包含“Save”和“Cancel”两个提交按钮的表单,以及如何通过@page指令处理。由于原文未提供,此处无法补充。)

在您的页面处理程序中,您可以通过表单集合中的“submit-button”键访问提交的按钮值。

以上是如何处理ASP.NET MVC中的多个提交按钮?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板