zoukankan      html  css  js  c++  java
  • 【MVC5】画面多按钮提交

    画面上有个多个按钮时,如何绑定到各自的Action上?

    1.追加如下MultipleButtonAttribute

     1 using System;
     2 using System.Reflection;
     3 using System.Web.Mvc;
     4 
     5 namespace DailyReportSystem.Attribute
     6 {
     7     [AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]
     8     public class MultipleButtonAttribute : ActionNameSelectorAttribute
     9     {
    10         public string Name { get; set; }
    11         public string Argument { get; set; }
    12 
    13         public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)
    14         {
    15             var isValidName = false;
    16             var keyValue = string.Format("{0}:{1}", Name, Argument);
    17             var value = controllerContext.Controller.ValueProvider.GetValue(keyValue);
    18 
    19             if (value != null)
    20             {
    21                 controllerContext.Controller.ControllerContext.RouteData.Values[Name] = Argument;
    22                 isValidName = true;
    23             }
    24 
    25             return isValidName;
    26         }
    27     }
    28 }

    2.Razor(给按钮追加name属性,值的格式为【{Name}:{Argument}】)

    <form action="" method="post">
     <input type="submit" value="Save" name="action:Save" />
     <input type="submit" value="Cancel" name="action:Cancel" />
    </form>

    3.Controller(参数Name和Argument对应按钮的name属性值)

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

     原文地址:http://stackoverflow.com/questions/442704/how-do-you-handle-multiple-submit-buttons-in-asp-net-mvc-framework

     已添加到【MVC5】ASP.NET MVC 项目笔记汇总

  • 相关阅读:
    厦门游记
    2021春节时光
    2021春节一帖
    阅读清单-2021
    LSTM
    三种梯度下降算法的区别(BGD, SGD, MBGD)
    数据降维:主成分分析法
    Windows10安装Oracle 11g
    C++智能指针
    C++开发岗基础面试题
  • 原文地址:https://www.cnblogs.com/Ryukaka/p/4795511.html
Copyright © 2011-2022 走看看