ホームページ > バックエンド開発 > C++ > ASP.NET MVCの複数の送信ボタンを処理する方法は?

ASP.NET MVCの複数の送信ボタンを処理する方法は?

Barbara Streisand
リリース: 2025-02-01 10:36:09
オリジナル
252 人が閲覧しました

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

ASP.NET MVCフレームワークの複数の提出ボタンASP.NETコアMVCフレームワークでは、単一のフォームで複数の提出ボタンを使用できます。これにより、クリックボタンに基づいて異なる操作の柔軟性が提供されます。 複数の提出ボタンを処理する1つの方法は、属性ベースのルートです。以下は例です:

属性:

レイザービュー:

(ここでは、「保存」と「キャンセル」という2つの提出ボタンを含むフォームを表示する実際のRazorコードを含める必要があります。元のテキストは提供されていないため、ここには追加できません。
<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ページコードを含める必要があります。2つの送信ボタン、「保存」と「キャンセル」を含むフォームを表示し、

命令に合格する方法。元のテキストは提供されていないため、できませんここに追加されます。)
<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>
ログイン後にコピー

ページ処理プログラムでは、フォームセットの「送信ボタン」キーによって送信されたボタン値にアクセスできます。

以上がASP.NET MVCの複数の送信ボタンを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート