Kod:Dlaczego mój filtr działania nie jest wywoływany?
public class TheFilter : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
var controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
}
}
public class NotesController : BaseController
{
[TheFilter]
[HttpPost]
public ActionResult Edit(EditViewModel viewModel)
{
viewModel.Note.Modified = DateTime.Now;
viewModel.Note.ModifiedBy = User.Identity.Name;
var noteTable = StorageHelper.GetTable<Note>(viewModel.PageMeta.DataSourceID);
noteTable.AddOrUpdate(viewModel.Note);
return Home();
}
}
Kiedy debugowanie na powrót do domu (krok po kroku) i potem ominąć filtr działania i iść prosto do sposobu Home().
Czy deklaruję poprawność działania filtra?
Odtworzyłem scenariusz dokładnie tak, jak powyżej, a mój filtr akcji został trafiony. Zdaję sobie sprawę, że te informacje nie pomogą rozwiązać twojego problemu, ale pomyślałem, że powinieneś wiedzieć, że twój kod jest poprawny. Inne problemy z konfiguracją mogą być przyczyną problemu. –
Dzięki Nathan. Czy powinienem zadeklarować klasę o nazwie TheFilterAttribute lub o nazwie TheFilter? Myślałem, że to może być problem i próbowałem tego. Jednak taki sam wynik. Nie wchodzi do OnActionExecuted –
Po prostu wypróbowałem go bez "Attribute" na końcu mojego filtra akcji; to nie ma znaczenia. –