Heim >Backend-Entwicklung >C++ >Wie behandle ich mehrere Sendet -Schaltflächen in ASP.NET -MVC -Formularen?

Wie behandle ich mehrere Sendet -Schaltflächen in ASP.NET -MVC -Formularen?

DDD
DDDOriginal
2025-02-01 10:51:09179Durchsuche

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

Verarbeiten Sie mehrere Übermittlungsschaltflächen in ASP.NET MVC

In diesem Artikel wird erläutert, wie mehrere Einreichungsschaltflächen in derselben Form verwaltet werden. Betrachten Sie den folgenden HTML -Code, der ein Formular definiert, das zwei Übermittlungsschaltflächen "Senden" und "Abbrechen" enthält:

<code>(此处应插入包含两个提交按钮的表单HTML代码示例)</code>
Bei der Verarbeitung des Formulars im ASP.NET -MVC stützt sich das Framework im Allgemeinen auf den Namen der Taste, um die zugehörige Betriebsmethode zu bestimmen. Bei mehreren Schaltflächen oben wird diese Methode jedoch schwierig.

Um dieses Problem zu lösen, schlägt dieser Artikel ein benutzerdefiniertes Attribut namens

vor. Dieses Attribut wird verwendet, um den Betriebsprozess des Betriebs abzufangen und zu bewerten, ob die eingeführten Anforderungen aus einer bestimmten Einreichungs -Taste abgeleitet werden. Wenn Sie das passende Element finden, identifizieren und rufen Sie die entsprechende Betriebsmethode auf. MultipleButtonAttribute

<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>
Akzeptieren Sie zwei Parameter:

und MultipleButtonAttribute. Name Das Attribut wird verwendet, um den Namen der Schaltfläche Senden zu identifizieren, und das Attribut Argument repräsentiert den Wert, der der Schaltfläche zugeordnet ist. Name Argument Um zu verwenden, sollte der HTML -Code des Formulars so geändert werden, dass der Attributname und den Parameterwert enthalten. Zum Beispiel:

MultipleButtonAttribute Im Controller sollte die entsprechende Betriebsmethode mit

und dem richtigen
<code>(此处应插入修改后的包含属性的表单HTML代码示例)</code>
und

Wert: MultipleButtonAttribute dekoriert werden: Name Argument

Mit dieser Methode kann das ASP.NET -MVC -Framework die Einreichungen nun der entsprechenden Betriebsmethode genau zuordnen, um mehrere Einreichungsschaltflächen in derselben Form korrekt zu verarbeiten.
<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>

Das obige ist der detaillierte Inhalt vonWie behandle ich mehrere Sendet -Schaltflächen in ASP.NET -MVC -Formularen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn