core基础常用的部分HttpContext'常用操作

*1:NetCore的上下文,自行封装一个全局静态 HttpContextHelper

*2:读取Json的配置文件

{
// IConfiguration Configuration 得注入,二级节点的访问,用冒号 .GetSection("AppSettings:" + name)
   Configuration.GetSection("").Value;
}

*3:读取Session

// 先下载session的扩展nuget包 Microsoft.aspnetcore.http.extensions
services.AddSession(); //写在 ConfigureServices中;
app.UseSession(); //写在 Configure中
HttpContextHelper.Current.Session.GetString("pwdqrcodekey");

*4:控制器的一般fitter,继承自 : Attribute, IActionFilter
/****************/

public class LoginFltAttribute : Attribute, IActionFilter
{
/// <summary>
/// 执行后
/// </summary>
/// <param name="context"></param>
public void OnActionExecuted(ActionExecutedContext context)
{}

/// <summary>
/// 执行前
/// </summary>
/// <param name="context"></param>
public void OnActionExecuting(ActionExecutingContext context)
{}
}

—1.获取当前控制器名称的异同

// string actionName = filterContext.ActionDescriptor.ActionName; //MVC5写法
   string actionName = filterContext.Controller.GetType().Name; //Core写法

-2.返回数据字典到视图的异同

filterContext.Result = new ViewResult { ViewName = "error", ViewData = new ViewDataDictionary<Return_Msg>(msg) }; //MVC5写法

/*ViewDataDictionary实例化不了,多用快速监视,使用viewData,来构造他,就可以使用他了*/
ViewDataDictionary<Return_Msg> viewdata = new ViewDataDictionary<Return_Msg>(((Controller)filterContext.Controller).ViewData, msg);
filterContext.Result = new ViewResult() { ViewName = "error", ViewData = viewdata }; //Core的写法

-3.拿到控制器的属性

filterContext.Controller.ViewBag.RightBtnView //MVC5写法
Controller controller = filterContext.Controller as Controller;
controller.ViewBag.RightBtnView = btnView; //Core写法

-4.控制器中参数的获取 (变量 pDesc 类型是 ParameterDescriptor)

int zbid = Convert.ToInt32(filterContext.ActionParameters[pDesc.ParameterName]); //MV5的写法
int zbid= filterContext.ActionArguments[pDesc.Name].ToString(); //Core写法
filterContext.ActionDescriptor.Parameters。 Ilist<ParameterDescriptor>//集合形式的存放
filterContext.ActionDescriptor.Parameters[0].Name //获得第一个参数的名称,只能拿到参数名称,不能拿到key对应的value值
filterContext.ActionArguments//字典形式的参数列表,可以拿到key与value值,更加灵活

-5.取得当前参数列表List

List<string> arrQueryKeys = filterContext.HttpContext.Request.QueryString.AllKeys.ToList(); //MV5写法
List<string> arrQueryKeys = filterContext.HttpContext.Request.Form.Keys.ToList(); //前端Form表单参数的集合
KeyValuePair<string, Microsoft.Extensions.Primitives.StringValues>[] kk= filterContext.HttpContext.Request.Query.ToArray(); //地址栏的参数列表,这里转换成 数组,Core写法

-5.1 当前列表中,拿到指定的参数,用指定的key得到对应的value,keyName=指定的key

int zbid= Convert.ToInt32(filterContext.HttpContext.Request.Params[keyName]); //MV5的写法
int zbid = Convert.ToInt32(filterContext.HttpContext.Request.Form.FirstOrDefault(i => i.Key == keyName).Value);

-6.拿到上次访问完整的地址域名,

filterContext.HttpContext.Request.UrlReferrer.OriginalString; //MVC5判断请求的头中有没有“Referer”是否为空
filterContext.HttpContext.Request.Headers["Referer"]; //Core

7.判断是否为Ajax请求

filterContext.HttpContext.Request.IsAjaxRequest()//MC5
判断是否是Ajax请求 判断Head头部是否有 “X-Requested-With: XMLHttpRequest”,有=Ajax请求
public static bool IsAjaxRequest(this HttpRequest request)
{
   bool result = false;
   var xreq = request.Headers.ContainsKey("x-requested-with");
   if (xreq)
   result = request.Headers["x-requested-with"] == "XMLHttpRequest";
   return result;
}

8.先注册。已经注册过的,可以通过这种得到

protected virtual T CreateService<T>()
{
   // typeof(T) ==>接口名
   return (T)this.HttpContext.RequestServices.GetService(typeof(T));
}

core基础常用的部分HttpContext'常用操作

原文地址:https://www.cnblogs.com/Qintai/p/11828247.html

时间: 2024-10-11 16:29:27

core基础常用的部分HttpContext'常用操作的相关文章

python基础数据类型----整数 ,字符串【常用操作方法】,布尔值,for循环

Python基础数据类型(4.29) bool str int 三者之间的转换 str索引切片,常用操作方法 for循环(大量的练习题) 1.基础数类型总览 整数(int) ,字符串(str),布尔值(bool),列表(list),元组(tuple),字典(dict),集合(set). 10203 123 3340 int 主要用于计算+- * / 等等 '今天吃了没?' str 存储少量的数据,并进行相应的操作.str1 + str2, str *int , 索引,切片, 其他操作方法 Tru

Java基础----Java API中的常用类

System:描述系统的一些信息 preperties();获取系统信息 Properties prop =new System.getProperties(); 是hashtable 的子类.用map的方法去除该类集合中的元素.该集合中存储的都是字符串,没有泛型定义. String calue=(String)prop.get(obj); System.out.println(obj+":"+value); //如何在系统中自定义一些特有信息? System.setProperty(

Java基础复习笔记系列 五 常用类

Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String s2 = “hello”:结论:s1 == s2. 字符串常量放在data区. 3. String s3 = new String("hello"); String s4 = new String("hello");结论:s3 != s4.但s3.equals(s4).

.NET Core技术研究-最实用最常用的配置读取方式

原文:.NET Core技术研究-最实用最常用的配置读取方式 升级ASP.NET Core后,配置的读取是第一个要明确的技术.原先的App.Config.Web.Config.自定义Config在ASP.NET Core中如何正常使用.有必要好好总结整理一下,相信大家都会用到. 首先,看一下ASP.NET Core中的配置提供程序(Configuration Providers): 一.配置提供程序(Configuration Providers) ASP.NET Core 使用一个或多个配置提

Linux零基础入学之1-3 RHEL7基本命令操作和启动级别设置

§Linux零基础入学之1-3 RHEL7基本命令操作和启动级别设置 [本节内容] *Linux终端介绍 *shell提示符 *Bash shell基本语法 *基本命令的使用:ls.pwd.cd *查看系统折BIOS设置 *Linux如何获得帮助 *Linux关机命令:shutdown.init 0等 *Linux 7个启动级别 *设置服务器在来电后自动开机 [Linux终端介绍] tty    控制台终端 pts    代表虚拟终端 tty1-tty6 > 刚进入的图形界面(桌面)为tty1

深入 .NET Core 基础 - 1:deps.json, runtimeconfig.json 以及 dll

深入 .NET Core 基础:deps.json, runtimeconfig.json 以及 dll 原文地址:https://natemcmaster.com/blog/2017/12/21/netcore-primitives/ 1. .NET Core 应用程序基础 我学习过使用 gcc,C++ 和 vim 编程.当我开始使用 C# 和 .NET 的时候,点击 Visual Studio 中的 运行 按钮就是魔法,也带者失望.失望 - 不是因为我希望编写 Makefile - 而是因为

ASP.NET Core 属性路由 - ASP.NET Core 基础教程 - 简单教程,简单编程

原文:ASP.NET Core 属性路由 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 属性路由 经过前面章节的学习,想必你已经对 ASP.NET Core MVC 中的路由有了大概的了解,本来我想多花几章节来讲解路由规则,但是,作为基础教程,我们还是讲解下一个知识点吧. 在本章中,我们将学习另一种路由方法,即基于属性的路由. 属性路由 通过基于属性的路由,我们可以在控制器类和这些类的内部方法上使用 C# 属性. 这些属性携带了告诉 ASP.NET C

ASP.NET Core 视图 - ASP.NET Core 基础教程 - 简单教程,简单编程

原文:ASP.NET Core 视图 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 视图 花了几章节,终于把 ASP.NET Core MVC 中的 C 控制器涉及的七七八八了,本章节我们来学习下 V,也就是视图部分. ASP.NET Core MVC 应用程序中,没有任何内容像页面,并且在 URL 中指定路径时, 它也不包含与页面直接对应的任何内容. ASP.NET Core MVC 应用程序中最接近页面的东西被称为视图 是不是很拗口,哈哈,页面就是

ASP.NET Core 配置 MVC - ASP.NET Core 基础教程 - 简单教程,简单编程

原文:ASP.NET Core 配置 MVC - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 配置 MVC 前面几章节中,我们都是基于 ASP.NET 空项目 模板创建的 HelloWorld 上做开发 通过这个最基本的 HelloWorld 项目,我们了解了很多知识,初窥了 ASP.NET Core,并对 ASP.NET Core 的运行机制有了一个基本的了解 MVC 模式是 Web 开发中最重要的一个模式之一,通过 MVC,我们可以将控制器.模型和视