zoukankan      html  css  js  c++  java
  • ASP.NET MVC 通过ActionFilter获取请求的参数

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Net.Http;
    using System.Reflection;
    using System.Threading;
    using System.Threading.Tasks;
    using System.Web;
    using System.Web.Http.Controllers;
    using System.Web.Mvc;
    
    namespace JMB.Web
    {
        public class ParameterValidationActionFilter : IActionFilter
        {
            public void OnActionExecuted(ActionExecutedContext filterContext)
            {
            }
    
            public void OnActionExecuting(ActionExecutingContext filterContext)
            {
                //var param  =  filterContext.RequestContext.HttpContext.Request.Params;
                var paramss = filterContext.ActionParameters;
                if (paramss != null && paramss.Count > 0)
                {
                    foreach (var para in paramss)
                    {
                        var formCollection = para.Value as FormCollection;
                        if (formCollection != null) //是否是post请求
                        {
                            var keys = formCollection.AllKeys;
                            if (keys != null && keys.Count() > 0)
                            {
                                //获取所有参数
                                foreach (var item in keys)
                                {
                                    var result = formCollection.GetValue(item).AttemptedValue ?? "";
                                    // TO DO
    
                                }
    
                            }
    
                        }
                        else //get请求
                        {
                            if (para.Value != null)
                            {
                                //这个也有能是 (string str1,string str2)格式的话就是获取每个参数
                                // 如果是 (QueryModel model) 的话 就是QueryModel对象
                                var result = para.Value?.ToString() ?? "";
    
                                
                            }
    
                        }
                    }
    
                }
    
               
            }
    
        }
    }

    然后在web网站下的App_Start文件夹FilterConfig类里添加ParameterValidationActionFilter 过滤器

    using System.Web.Mvc;
    
    namespace JMB.Web
    {
        public class FilterConfig
        {
            public static void RegisterGlobalFilters(GlobalFilterCollection filters)
            {
                filters.Add(new HandleErrorAttribute());
                filters.Add(new ParameterValidationActionFilter());
            }
        }
    }
  • 相关阅读:
    了解Web2.0必订阅之十大Blog[个人推荐]
    [J2ME Q&A]Target port denied to untrusted applications问题回应
    2005年Csdn十大最热门BLog作者排名第一?
    J2me流媒体技术实现讨论[1]
    液氮
    微分、差分和变分的概念
    Python mutable vs immutable (不可变对象 vs 可变对象)
    异戊烷
    免疫组化
    [导入]java escape unescape
  • 原文地址:https://www.cnblogs.com/hudean/p/14593452.html
Copyright © 2011-2022 走看看