Heim >Backend-Entwicklung >C++ >Wie behandle ich mehrere Sendet -Schaltflächen in ASP.NET -MVC -Formularen?
Verarbeiten Sie mehrere Übermittlungsschaltflächen in ASP.NET MVC
<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
<code>(此处应插入修改后的包含属性的表单HTML代码示例)</code>und
Wert: MultipleButtonAttribute
dekoriert werden: Name
Argument
<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!