c# - 在 ActionFilter 中检测 ActionResult 类型?

标签 c# asp.net-mvc-3

我有一个全局 ActionFilter 在每个 ActionResult 上执行。是否可以在 ActionFilter 中检测 ActionResult 类型(例如 JsonResultActionResult)?

例如,我希望ActionFilter在这里立即退出:

public JsonResult someAjaxAction()
{
}

但我希望它能在这里发挥它的魔力:

public ActionResult PageView()
{
}

是的,我知道我可以只使用 ActionFilter 属性并装饰我想执行它的 Action ,但我想将它保留为全局 ActionFilter 并在操作内部检测我是否需要执行所需的工作。

最佳答案

public class MyActionFilterAttribute : ActionFilterAttribute
{
    public override void OnResultExecuted(ResultExecutedContext filterContext)
    {
        if (filterContext.Result is ViewResult)
        {
            ...
        }
        else if (filterContext.Result is JsonResult)
        {
            ...
        }
        ...
    }
}

关于c# - 在 ActionFilter 中检测 ActionResult 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9391242/

相关文章:

asp.net - 是否需要授予应用程序池身份对Web文件夹的读取权限?

javascript - 如何使用 jQuery 和/或 css 在 td 中为该图像制作动画?

c# - ASP MVC 中的动态验证

c# - 您能否在每个 block 中捕获不止一种类型的异常?

c# - 绑定(bind)datagrid时数据库异常

asp.net-mvc - 如何将 http-request 转换为正确的对象?

c# - 如何使用 TimePicker 到 DatePicker MVC3 C#

c# - 绑定(bind)到 MvvmCross for MonoDroid/Android 中的 Path ImageView

c# - 为什么 Entity Framework 可以在本地工作但不能在 azure 上工作

c# - 为什么在服务器应用程序中需要两个套接字?