gpt4 book ai didi

asp.net - OnResultExecuted 和 OnResultExecuting 究竟何时触发?

转载 作者:行者123 更新时间:2023-12-03 11:56:07 28 4
gpt4 key购买 nike

我正在创建一个自定义 ActionFilterAttribute为了转型ViewResult s 并重定向到 JsonResult s 在 ajax 请求期间。我已经通过单元测试连接了大部分内容,出于某种原因,我假设我的转换必须在 OnResultExecuting 中进行。 ,我意识到事实并非如此,正确的覆盖方法是 OnActionExecuted ,一旦 action 方法返回结果就会调用它。

我的问题是什么时候 OnResultExecutedOnResultExecuting被调用是因为我在所有四个覆盖中都有断点,并且只有 OnActionExecuting 中的断点和 OnActionExecuted正在射击。

最佳答案

让我们以执行您描述的转换的以下示例为例:

public class MyActionFilterAttribute : ActionFilterAttribute
{
public override void OnActionExecuted(ActionExecutedContext filterContext)
{
if (filterContext.HttpContext.Request.IsAjaxRequest())
{
var result = filterContext.Result as ViewResultBase;
if (result != null && result.Model != null)
{
filterContext.Result = new JsonResult
{
Data = result.Model,
JsonRequestBehavior = JsonRequestBehavior.AllowGet
};
}
}
}

public override void OnResultExecuting(ResultExecutingContext filterContext)
{
}

public override void OnResultExecuted(ResultExecutedContext filterContext)
{
}
}

OnResultExecuting 方法将在操作结果的 ExecuteResult 之前立即被调用方法运行并且 OnResultExecuted 方法紧随其后。

关于asp.net - OnResultExecuted 和 OnResultExecuting 究竟何时触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10423955/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com