Я пытаюсь создать фильтр пользовательских действий, который должен перехватывать состояние модели и что-то делать в зависимости от текущего состояния (действительное или недействительное).Однако, выполнив некоторые проверки, я понял, что фильтр действий запускается, только если состояние модели уже допустимо, т.е.Если присутствуют все записи входной модели представления.
Примером является моя аутентификация json.У него есть имя пользователя, пароль и секретный ключ.
{
"Email": "user@apppp.com",
"Password": "password",
"SecretKey":""
}
Приведенное выше недопустимое состояние модели, поскольку требуется секретный ключ.Таким образом, фильтр действий не запускается
{
"Email": "user@apppp.com",
"Password": "password",
"SecretKey":"abc"
}
Этот второй является действительным для модели, поэтому фильтр действий работает.Однако я хочу запустить фильтр действий, даже если он недействителен.Как я могу перезаписать это?
ActionFilter
public class ModelValidationAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext context)
{
if (!context.ModelState.IsValid)
{
//context.Result = new ValidationFailedResult(context.ModelState);
context.Result = new OkObjectResult("Hello");
}
else
{
context.Result = new OkObjectResult("Bye");
}
}
}