我正在为这种和平的代码而苦苦挣扎:
public class MultiDatabaseAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
base.OnActionExecuting(filterContext);
}
}
我想在我的 API 中对某些 ActionResults 执行 OnActionExecuting。这是我的 API 中的一个方法:
[MultiDatabase]
public Website Get(int id)
{
return _websites.Get(id);
}
它不起作用。无论我尝试什么,都不会调用方法属性。据网站http://www.strathweb.com/2015/06/action-filters-service-filters-type-filters-asp-net-5-mvc-6/这应该有效。
根据这个question我必须将该属性添加到 Global.asax。也没有帮助。
谁能帮帮我?
谢谢
最佳答案
您从错误的基类继承了您的属性。 MVC 和 WebAPI 有不同的对象(至少在 ASP.Net Core 将它们合并为一个之前)。确保您的属性中有正确的导入:
using System.Web.Http.Filters;
或者使用完整的命名空间:
public class MultiDatabaseAttribute : System.Web.Http.Filters.ActionFilterAttribute
{
public override void OnActionExecuting(HttpActionContext actionContext)
{
base.OnActionExecuting(actionContext);
}
}
关于c# - 未调用 MVC API2 ActionFilterAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42133672/