gpt4 book ai didi

asp.net-mvc-4 - 为什么这会返回 System.Threading.Tasks.Task`1[System.Web.Mvc.ActionResult]

转载 作者:行者123 更新时间:2023-12-03 22:45:01 26 4
gpt4 key购买 nike

不知道为什么在任务完成后这没有返回我的观点,我可以在谷歌上找到很多关于原因的信息。

public async Task<ActionResult> GetUserAsync()
{

var value = Task.Factory.StartNew(() => _userService.GetUser("ausername"));

await Task.WhenAll(value);

return View("GetUser");
}

最佳答案

好吧,经过太多小时的调试和拔出我剩下的头发,我找到了罪魁祸首。这是我的 WindsorActionInvoker !!从 ControllerActionInvoker 更改为 AsyncControllerActionInvoker 解决了异步任务无法按预期工作的问题。

我希望这可以帮助别人。

public class WindsorActionInvoker : AsyncControllerActionInvoker
{
private readonly IKernel _kernel;


public WindsorActionInvoker(IKernel kernel)
{
_kernel = kernel;
}

protected override ActionExecutedContext InvokeActionMethodWithFilters(ControllerContext controllerContext,
IList<IActionFilter> filters,
ActionDescriptor actionDescriptor,
IDictionary<string, object> parameters)
{
foreach (IActionFilter actionFilter in filters)
{
_kernel.InjectProperties(actionFilter);
}
return base.InvokeActionMethodWithFilters(controllerContext, filters, actionDescriptor, parameters);
}
}

关于asp.net-mvc-4 - 为什么这会返回 System.Threading.Tasks.Task`1[System.Web.Mvc.ActionResult],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17711145/

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