共通のコア基部のHttpContext「の一般的な操作

 

* 1:NetCoreコンテキスト、グローバル静的パッケージ自体HttpContextHelper

* 2:設定ファイルは、JSONを読みます

{
 // IConfigurationが設定注入を有する、2つのアクセスノード、結腸.GetSection( "のAppSettings:" +名) 
   Configuration.GetSection("" ).Valueの; 
}

 

* 3:読書セッション

// 最初のダウンロードセッションの拡張はMicrosoft.aspnetcore.http.extensionsパッケージnuget 
services.AddSessionを(); // 書き込みConfigureServicesをして、 
app.UseSession(); // 書き込み設定 
HttpContextHelper.Current.Session.GetString(" pwdqrcodekey ");

 

* 4:一般的なフィッタコントローラから継承:属性、IActionFilter
/ **************** /

パブリック クラスLoginFltAttribute:属性、IActionFilter 
{ 
///  <要約> 
/// 执行后
 ///  </要約> 
///  <PARAM NAME = "コンテキスト"> </ PARAM> 
公共 ボイドOnActionExecuted(ActionExecutedContextコンテキスト)
{} 

///  <要約> 
/// 执行前
 ///  </要約> 
///  <PARAM NAME = "コンテキスト"> </ PARAM> 
公共 ボイドOnActionExecuting(ActionExecutingContextコンテキスト)
{} 
}

 

1.現在のコントローラの類似点と相違点の名前を取得します。

// 文字列actionNameの= filterContext.ActionDescriptor.ActionName。// MVC5写法
   文字列 actionNameの= filterContext.Controller.GetType()の名前。// コア写法

 

-2データ・ディクショナリ・ビューの間の類似点と相違点に戻ります

= filterContext.Result 新しい新 AするViewResult VIEWNAME = { " エラー"、ViewDataを= 新しい新しい ViewDataDictionary <Return_Msg>(MSG)}; // MVc5書き込ま

/ * ViewDataDictionaryない場合、マルチフラッシュのViewDataを使用して監視、彼が構築、使用することができます彼* / 
ViewDataDictionary <Return_Msg> = ViewDataを新しい新規 ViewDataDictionary <Return_Msg> (((コントローラ)filterContext.Controller).ViewData、MSG); 
filterContext.Result = 新しい新するViewResult(){VIEWNAME = " エラー"、のViewData = ViewDataを}。// コア言葉遣い

 

 

GET -3。属性コントローラ

filterContext.Controller.ViewBag.RightBtnView // MVC5写法 
コントローラコントローラ= filterContext.Controller としてコントローラ。
controller.ViewBag.RightBtnView = btnView。// コア写法

 


-4。コントローラを取得するパラメータ(変数型はpDescザParameterDescriptorです)

INT zbid = Convert.ToInt32(filterContext.ActionParameters [pDesc.ParameterName]); // MV5文言
INT zbid = filterContext.ActionArguments [pDesc.Name] .ToString(); // コア文言 
filterContext.ActionDescriptor.Parameters。IList <ParameterDescriptor> // 設定形状記憶 
filterContext.ActionDescriptor.Parameters [ 0 ] .nameの// パラメータの最初の名前を取得し、パラメータ名のみを取得することができ、キー値に対応しない値を取得 
filterContext.ActionArgumentsを// 引数リストの辞書形式は、キーと値の値を取得することができ、より柔軟な

 


-5。パラメータリストの現在のリストを取得します。

リスト< ストリング > arrQueryKeys filterContext.HttpContext.Request.QueryString.AllKeys.ToList =(); // MV5文言 
リスト< ストリング > arrQueryKeys filterContext.HttpContext.Request.Form.Keys.ToList =(); // 遠位フォームフォームパラメータセット 
KeyValuePair < 文字列、Microsoft.Extensions.Primitives.StringValues> [] filterContext.HttpContext.Request.Query.ToArray KK =(); // 配列に変換パラメータリストのアドレスバー、コア文言

 


-5.1現在のリストは、指定したキーに対応する値を得るために、指定されたパラメータを取得し、keyNameの=指定されたキー

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の決意要求には「リファラー」が空でなかった 
[filterContext.HttpContext.Request.Headers リファラー ]; // コア

 


7.か否かを判断する要求のAjax

filterContext.HttpContext.Request.IsAjaxRequest()// MC5 
判断是否是のAjax请求判断ヘッド头部是否有「X-要求-WITH:のXMLHttpRequest」、有= Ajaxの请求
 パブリック 静的 ブール IsAjaxRequest(このHttpRequestの要求)
{ 
   BOOLの結果= ;
   VAR XREQ = request.Headers.ContainsKey(" X-要求-付き" )。
   もし(XREQ)
   結果 = request.Headers [ " X-要求-と" ] == " のXMLHttpRequest "    戻り値の結果; 
}

 


レジスタ8。既に登録されている、あなたはこれを介して取得することができます

保護された 仮想 T CreateService <T> ()
{ 
   // typeof演算(T)==>接口名
   リターン(T)この .HttpContext.RequestServices.GetService(typeof演算(T))。
}

 

おすすめ

転載: www.cnblogs.com/Qintai/p/11828247.html