我想用1个路由参数自动填充ViewContext,但是有时在查询中,有时在Url中。
查询时,很容易使用req.Query.TryGetValue(key, out StringValues val)
获取参数。
但是,我正在寻找一种捕获路由参数的方法,例如:
[PrefillViewContext("postId")]
[HttpGet("/Post/{postId}")]
public IActionResult DisplayPost(Guid postId) {}
是否有一种方法可以在方法主体之外获取此postId
值,并将其用于上面的属性中? (或在课程级别的属性中)
答案 0 :(得分:1)
您可以通过继承ActionFilterAttribute
使用ActionExecutingContext获取操作参数。您可以从上下文中获取所有RouteData。
public class PrefillViewContextAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
var postId = context.ActionArguments["PostId"];
}
}