使用.net core mvc c#
我有一个控制器:
[ServiceFilter(typeof(MyCustomFilter))]
public class HomeController : Controller
{
public IActionResult Index(string type)
{
}
}
在我的过滤器中,我希望得到字符串"输入"值作为查询字符串传递
我的过滤器为:
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, Inherited = true, AllowMultiple = false)]
public class MyCustomFilter: ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
//this is always null
string id = filterContext.RouteData.Values["type"].ToString();
}
}
我在这里缺少的任何东西。因为我已经阅读了很少的帖子,他们已经提到了上述内容。
谢谢
答案 0 :(得分:1)
对于在查询字符串中传递的参数:
string id = filterContext.Request.Query["type"];
答案 1 :(得分:1)
我相信你可以使用以下内容。我在日志记录过滤器中使用类似于下面的内容。日志过滤器代码也在下面。你也可以迭代这个集合。
string id = filterContext.ActionParameters["Type"];
迭代所有参数并将它们聚合到最终写入文件的日志字符串中。
logString = filterContext.ActionParameters.Aggregate(logString, (current, p) => current + (p.Key + ": " + p.Value + Environment.NewLine));