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
Freigeben: 2025-02-01 10:51:09
Original
234 Leute haben es durchsucht

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>
Nach dem Login kopieren
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

[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;
    }
}
Nach dem Login kopieren
<受> 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>
Nach dem Login kopieren
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.
[HttpPost]
[MultipleButton(Name = "action", Argument = "Save")]
public ActionResult Save(MessageModel mm) { ... }

[HttpPost]
[MultipleButton(Name = "action", Argument = "Cancel")]
public ActionResult Cancel(MessageModel mm) { ... }
Nach dem Login kopieren

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!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage