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

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

Barbara Streisand
Barbara Streisand原创
2025-02-01 10:36:09252浏览

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

在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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn