Abd*_*rim 4 action-filter .net-core asp.net-core
是否可以将操作筛选器中的参数传递给控制器,尤其是通过参数传递(在ASP.NET Core中)?
例如:
public class CategoryController : Controller
{
[HttpGet]
[ServiceFilter(typeof(ApiFilter))]
public async Task<IActionResult> Index(string dataComingFromActionFilter)
{
//use dataComingFromActionFilter
}
}
Run Code Online (Sandbox Code Playgroud)
和
public class ApiFilter: IActionFilter
{
public void OnActionExecuting(ActionExecutingContext context)
{
//maybe something similar to
context.sendToActionAsArgument['dataComingFromActionFilter'] = "data";
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用
context.ActionArguments["dataComingFromActionFilter"] = "data";
Run Code Online (Sandbox Code Playgroud)
用于更新现有的动作参数。如果您需要添加新参数,则
context.ActionArguments.Add("dataComingFromActionFilter", "data");
Run Code Online (Sandbox Code Playgroud)
然后您可以通过Controller Action来实现
在 HttpContext 的 Items 集合中设置属性值:
context.HttpContext.Items.Add("DataFromAttribute", date);
Run Code Online (Sandbox Code Playgroud)
并且在控制器中以相同的方式读取它们:
this.HttpContext.Items["DataFromAttribute"];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
795 次 |
| 最近记录: |