ASP.NET Core MVCのIActionFilter.OnActionExecutingメソッドでは、ControllerのActionメソッドのパラメータ値を取得できます...
4684 ワード
ASPを使ったことがあります.NET Core MVCのIActionFilterブロッキングの開発者は、非常に強力なMVCブロッキングであることを知っています.IActionFilterのOnActionExecutionメソッドが最近発見され,ControllerのActionメソッドパラメータ値を取得することもできる.
もし私たちがASP.にいたらNET Core MVCプロジェクトにはHomeControllerというアクションメソッドがあります.このメソッドにはLogin LogoutRequestタイプのパラメータがあります.Loginに後述するMyActionFilterブロッキングを登録していることに注意してください.
では、MyActionFilterというIActionFilterブロッカーを定義し、OnActionExecutingメソッドでHomeControllerのActionメソッドLoginのパラメータLoginLogoutRequestを取得します.
転載先:https://www.cnblogs.com/OpenCoder/p/10254526.html
もし私たちがASP.にいたらNET Core MVCプロジェクトにはHomeControllerというアクションメソッドがあります.このメソッドにはLogin LogoutRequestタイプのパラメータがあります.Loginに後述するMyActionFilterブロッキングを登録していることに注意してください.
public class HomeController : Controller
{
[MyActionFilter]
[HttpPost]
public IActionResult Login([FromBody]LoginLogoutRequest loginLogoutRequest)
{
return View();
}
}
そのパラメータLoginLogoutRequestクラスの定義は次のとおりです.public class LoginLogoutRequest
{
public string Username { get; set; }
public string Password { get; set; }
}
では、MyActionFilterというIActionFilterブロッカーを定義し、OnActionExecutingメソッドでHomeControllerのActionメソッドLoginのパラメータLoginLogoutRequestを取得します.
public class MyActionFilterAttribute : Attribute, IActionFilter
{
///
/// OnActionExecuting Controller Action
///
public void OnActionExecuting(ActionExecutingContext context)
{
// Controller Action
foreach (var parameter in context.ActionDescriptor.Parameters)
{
var parameterName = parameter.Name;// Action
var parameterType = parameter.ParameterType;// Action
// Controller Action LoginLogoutRequest
if (parameterType == typeof(LoginLogoutRequest))
{
// , LoginLogoutRequest
var loginLogoutRequest = context.ActionArguments[parameterName] as LoginLogoutRequest;
var username = loginLogoutRequest.Username;
var password = loginLogoutRequest.Password;
}
}
}
///
/// OnActionExecuted Controller Action
///
public void OnActionExecuted(ActionExecutedContext context)
{
//TODO
}
}
IActionFilterのOnActionExecutingメソッドでは,簡単なコードでLoginメソッドパラメータLogingoutRequestの値を取得できることが分かる.転載先:https://www.cnblogs.com/OpenCoder/p/10254526.html