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());
}
}
}

ASP.NET MVC 通过ActionFilter获取请求的参数的更多相关文章

  1. Asp.Net MVC是否针对每次请求都重新创建一个控制器实例

    一.Asp.Net MVC是否针对每次请求都重新创建一个控制器实例 默认情况下,答案是确定的. ControllerBuilder类 ControllerBuilder.Current用户获取默认的控 ...

  2. 简述C#中IO的应用 RabbitMQ安装笔记 一次线上问题引发的对于C#中相等判断的思考 ef和mysql使用(一) ASP.NET/MVC/Core的HTTP请求流程

    简述C#中IO的应用   在.NET Framework 中. System.IO 命名空间主要包含基于文件(和基于内存)的输入输出(I/O)服务的相关基础类库.和其他命名空间一样. System.I ...

  3. ASP.NET MVC学前篇之请求流程

    ASP.NET MVC学前篇之请求流程 请求流程描述 对于请求的流程,文章的重点是讲HttpApplication和HttpModule之间的关系,以及一个简单的示例实现.(HttpModule又是M ...

  4. 【nodejs】让nodejs像后端mvc框架(asp.net mvc)一样处理请求--目录(8/8 完结)

    为什么要做这个 在使用nodejs开发过程中,总是发现需要做很多重复性的体力劳动,且因为自身是服务端程序员出身,感觉有一些服务端好的东西其实可以在nodejs上得到应用并能提高一些开发工作效率. 本系 ...

  5. ASP.NET MVC 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁

    在开发程序的过程中,稍微不注意就会隐含有sql注入的危险.今天我就来说下,ASP.NET mvc 5使用Filter过滤Action参数防止sql注入,让你代码安全简洁.不用每下地方对参数的值都进行检 ...

  6. ASP.NET Core MVC 如何获取请求的参数

    一次HTTP请求,就是一次标准IO操作.请求是I,是输入:响应式O,是输出.任何web开发框架,其实都是在干这两件事: 接受请求并进行解析获取参数 根据参数进行渲染并输出响应内容 所以我们学习一个框架 ...

  7. ASP.NET/MVC/Core的HTTP请求流程

    ASP.NET HTTP管道(Pipeline)模型 1. 先讲一点,再深刻思考 一般我们都在写业务代码,优化页面,优化逻辑之间内徘徊.也许我们懂得HTTP,HTTPS的GET,POST,但是我们大部 ...

  8. 整理ASP.NET MVC 5各种错误请求[401,403,404,500]的拦截及自定义页面处理实例

    http://2sharings.com/2015/asp-net-mvc-5-custom-404-500-error-hanlde https://blog.csdn.net/yhyhyhy/ar ...

  9. Asp.Net MVC 在后台获取PartialView、View文件生成的字符串

    在Asp.net MVC的实际开发中,有时需要在后台代码中获取某个View 或者 PartialView 生成的字符串,示例如下: 1. 将View文件输出为字符串: /// <summary& ...

  10. 【nodejs】让nodejs像后端mvc框架(asp.net mvc )一样处理请求--控制器的声明定义和发现篇(3/8)

    文章目录 前情概要 前面文章把路由已经介绍的差不多了,包括url映射,路由选择等.接下来讲一讲controller的一些基本规则 BaseController的所有代码都在这里拉.相当简单. 主要逻辑 ...

随机推荐

  1. PPT 渐变入门

    光圈 线性渐变 路径渐变 案例 一个圆 渐变 二个圆 渐变叠加 加阴影 阴影 金属字体

  2. SpringBoot WebService 及 注意项

    SpringBoot WebService 源代码:https://gitee.com/VipSoft/VipWebService SpringBoot 版本 <version>2.3.0 ...

  3. 创建QUERY报表

    一.SQ02创建信息集 该事务代码用于查询需要的表,及表之间的关联关系 首先设置查询区域,标准区域中所建立的信息集仅在当前客户端使用,全局区域中建立的信息集可以跨client 创建信息集 选择基础表关 ...

  4. CodeForces - 651A Joysticks ( 不难 但有坑 )

    正式更换编译器为: VS Code 如何配置环境:click here 代码格式化工具:clang-format A. Joysticks 题目连接: http://www.codeforces.co ...

  5. Codeforces Round #689 (Div. 2, based on Zed Code Competition) 个人题解

    1461A. String Generation void solve() { int n, k; cin >> n >> k; for (int i = 1; i <= ...

  6. 深入剖析 RSA 密钥原理及实践

    一.前言 在经历了人生的很多至暗时刻后,你读到了这篇文章,你会后悔甚至愤怒:为什么你没有早点写出这篇文章?! 你的至暗时刻包括: 1.你所在的项目需要对接银行,对方需要你提供一个加密证书.你手上只有一 ...

  7. 详解 Serverless 架构的 6 大应用场景

    导读 Serverless 架构将成为未来云计算领域重要的技术架构,将会被更多的业务所采纳.进一步深究,Serverless 架构在什么场景下有优秀的表现,在什么场景下可能表现得并不是很理想呢?或者说 ...

  8. springboot启动后异步启动一个程序

    如果你想在 Spring Boot 启动后异步方式启动一个方法,你可以使用 Spring Framework 的异步支持和 @Async 注解来实现.以下是如何在 Spring Boot 应用程序中异 ...

  9. 文心一言 VS 讯飞星火 VS chatgpt (182)-- 算法导论13.4 6题

    六.用go语言,Skelton 和 Baron 教授担心在 RB-DELETE-FIXUP 的情况1开始时,结点 x.p 可能不是黑色的.如果这两位教授是对的,则第5~6行就是错的.证明:x.p 在情 ...

  10. 使用JSEncrypt加密解密

    最近项目中使用非对称加密JSEncrypt. uni-app中先安装第三方npm包jsencrypt util文件夹下新建一个jsencrypt.js文件 1 import JSEncrypt fro ...