Мне нужно применить фильтр к запросу. Я создал подкласс ActionFilterAttribute
с переопределенным OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
. У меня есть немного сложная логика внутри фильтра, и в некоторых случаях я должен остановить работу фильтра и вернуть результат действия по умолчанию (как если бы не было фильтра). Если I return
в фильтре, рабочий процесс, кажется, полностью прекращается, результат действия не возвращается. Я попробовал await next()
или позвонил base.OnActionExecutionAsync(...)
, но это не сработало. Как я могу реализовать возврат из фильтра? у меня есть что-то вроде этого:ASP.Net Core Возврат из фильтра действий
public override async Task OnActionExecutionAsync(ActionExecutingContext context, ActionExecutionDelegate next)
{
//some logic
if (questionnaireId == Guid.Empty)
{
//here I need to let the mvc action run normally
return;//it doesn't work
} else {
//some logic..
}
}
Можете ли вы разместить свой код? И почему вы хотите реализовать «ActionFilter», может быть «промежуточное ПО» - лучший выбор. –
@aguafrommars. Я сомневаюсь в промежуточном программном обеспечении, потому что моя логика касается только MVC, и я бы не хотел добавлять еще один обработчик в конвейер для всего приложения – Slip