首頁 >後端開發 >C++ >如何處理ASP.NET MVC中的多個提交按鈕?

如何處理ASP.NET MVC中的多個提交按鈕?

Barbara Streisand
Barbara Streisand原創
2025-02-01 10:36:09253瀏覽

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