Asp.net-Core
將參數從動作過濾器傳遞給控制器
我可以將參數從動作過濾器傳遞給控制器,特別是通過參數(在 ASP.NET Core 中)嗎?
例如:
public class CategoryController : Controller { [HttpGet] [ServiceFilter(typeof(ApiFilter))] public async Task<IActionResult> Index(string dataComingFromActionFilter) { //use dataComingFromActionFilter } }和
public class ApiFilter: IActionFilter { public void OnActionExecuting(ActionExecutingContext context) { //maybe something similar to context.sendToActionAsArgument['dataComingFromActionFilter'] = "data"; } }
您可以使用
context.ActionArguments["dataComingFromActionFilter"] = "data";用於更新現有的動作參數。如果您需要添加新參數,則
context.ActionArguments.Add("dataComingFromActionFilter", "data");然後您可以通過 Controller Action 到達它
在屬性集的值放入 HttpContext 的 Items 集合中:
context.HttpContext.Items.Add("DataFromAttribute", date);並在控制器中以相同的方式讀取它們:
this.HttpContext.Items["DataFromAttribute"];