没有找到合适的方法来覆盖webapi

本文关键字:方法 覆盖 webapi | 更新日期: 2023-09-27 18:03:13

您好,我已经创建了一个更干净的代码Attribute,它只是检查出ModelState是否有效,但它一直给我这个错误:没有找到合适的方法来覆盖OnActionExecuting。顺便说一下,我已经在ControllerActionResult上使用了它。

下面是我的代码:
public class ValidateModelStateAttribute : ActionFilterAttribute
{
    public override void OnActionExecuting(HttpActionContext actionContext)
    {
        if (!actionContext.ModelState.IsValid)
        {
            actionContext.Response = actionContext.Request.CreateErrorResponse(
   HttpStatusCode.BadRequest, actionContext.ModelState);
        }
    }
}

这是我的控制器:

    Repository<User> userRepository = new Repository<User>();
    [HttpPost, ActionName("Register"), AllowAnonymous, ValidateModelState]
    public ActionResult Create(UserRegister useReg)
    {
        userRepository.Insert(UserFactory.UserRegisterFactory(useReg));
        userRepository.save();
        return new HttpStatusCodeResult(HttpStatusCode.OK);
    }

没有找到合适的方法来覆盖webapi

您可能正在使用来自命名空间System.Web.Mvc (https://msdn.microsoft.com/en-us/library/system.web.mvc.actionfilterattribute(v=vs.118).aspx)的ActionFilterAttribute。您应该使用https://msdn.microsoft.com/en-us/library/system.web.http.filters.actionfilterattribute(v=vs.118).aspx.