星空网 > 软件开发 > ASP.net

MVC页面上多个提交按钮提交到不同的Action

使用mvc扩展类,ActionNameAttribute方法如下:

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false, Inherited = true)]  public class MultiButtonAttribute : ActionNameSelectorAttribute  {    public string Name { get; set; }    public string Argument { get; set; }    public MultiButtonAttribute(string name)    {      this.Name = name;    }    public override bool IsValidName(ControllerContext controllerContext, string actionName, MethodInfo methodInfo)    {      var key = ButtonKeyFrom(controllerContext);      var keyIsValid = IsValid(key);      if (keyIsValid)      {        UpdateValueProviderIn(controllerContext, ValueFrom(key));      }      return keyIsValid;    }    private string ButtonKeyFrom(ControllerContext controllerContext)    {      var keys = controllerContext.HttpContext.Request.Params.AllKeys;      return keys.FirstOrDefault(KeyStartsWithButtonName);    }    private static bool IsValid(string key)    {      return key != null;    }    private static string ValueFrom(string key)    {      var parts = key.Split(":".ToCharArray());      return parts.Length < 2 ? null : parts[1];    }    private void UpdateValueProviderIn(ControllerContext controllerContext, string value)    {      if (string.IsNullOrEmpty(Argument))        return;      controllerContext.RouteData.Values[this.Argument] = value;    }    private bool KeyStartsWithButtonName(string key)    {      return key.StartsWith(Name, StringComparison.InvariantCultureIgnoreCase);    }  }

Controller:

[HttpPost] [MultiButton(Name = "delete", Argument = "id")] public ActionResult Delete(string id) {   return View(); } 

或者

    [HttpPost]    [MultiButton("btnSearch")]    public ActionResult Index(AttendanceList model)    {        return View(model);    }

View:

<input type="submit" value="查询" name="btnSearch" /><input type="submit" value="删除" name="delete:id" />

 




原标题:MVC页面上多个提交按钮提交到不同的Action

关键词:mvc

mvc
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流