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();
}
}
私はリターンホーム(でデバッグ)とをステップ実行し、私はアクションフィルタをバイパスし、ホーム()メソッドに直進します。
アクションフィルタを正しく宣言していますか?
シナリオを上記のように正確に再作成し、アクションフィルタがヒットしました。私はこの情報があなたの問題を解決するために何もしないことを理解しますが、あなたのコードが正しいことを知るべきだと思いました。発生している問題の原因には、他の設定方法があります。 –
ありがとうございました。 TheFilterAttributeという名前のクラスまたはTheFilterという名前のクラスを宣言する必要がありますか?私はこれが問題かもしれないと思って、それを試みました。しかし、同じ結果。それはOnActionExecutedにステップインしません –
アクションフィルタの最後に '属性'を付けずに試しました。それは問題ではないようです。 –