ASP.NET MVC
一般に、ASP.NET MVCのフォームを処理する場合、フレームワークはボタンの名前に依存して、実行される関連する操作方法を決定します。ただし、上記の複数のボタンの場合、この方法は難しくなります。
<code>(此处应插入包含两个提交按钮的表单HTML代码示例)</code>
と呼ばれるカスタム属性を提案します。この属性は、操作の処理プロセスを傍受し、導入された要求が特定の送信ボタンから派生しているかどうかを評価するために使用されます。一致するアイテムを見つけた場合は、対応する操作方法を識別して呼び出します。
MultipleButtonAttribute
2つのパラメーターを受け入れます。
<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>
MultipleButtonAttribute
を使用するには、フォームのHTMLコードを変更して、属性名とパラメーター値を含めるように変更する必要があります。たとえば、Name
Argument
コントローラーでは、対応する操作方法をName
で装飾し、正しいArgument
および
で装飾する必要があります。
MultipleButtonAttribute
この方法を使用して、ASP.NET MVCフレームワークは、適切な操作方法に送信を正確にマッピングして、同じ形式の複数の提出ボタンを正しく処理できるようにすることができます。
以上がASP.NET MVCフォームの複数の送信ボタンを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。