如何解决客户端调用中无法识别以“Async”结尾的 ABP 应用程序服务方法名称
我们最近从 ABP 3.0 升级到 ABP 6.3。在此过程中,我们注意到我们的 JavaScript 代码无法识别以“Async”结尾的应用程序服务方法名称。例如,我们的服务器端角色应用程序服务 (Rolesapplicationservice) 中名为“CreateAsync”的方法需要在 JavaScript 中不使用“Async”的情况下调用为“create”才能工作。
解决方法
是的,在您的 RemoveAsyncPostfixOnProxyGeneration = false
模块中设置 Web
:
public override void PreInitialize()
{
Configuration.Modules.AbpWebCommon().ApiProxyScripting.RemoveAsyncPostfixOnProxyGeneration = false;
}
对于 ASP.NET Core,您可能还需要在 SuppressAsyncSuffixInActionNames = false
类中设置 Startup
:
services.AddMvc(options =>
{
options.SuppressAsyncSuffixInActionNames = false;
});
参考文献:
- https://github.com/aspnetboilerplate/aspnetboilerplate/issues/2514
- https://github.com/aspnetboilerplate/aspnetboilerplate/issues/5043
- https://github.com/dotnet/aspnetcore/issues/8998
- https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.mvcoptions.suppressasyncsuffixinactionnames?view=aspnetcore-5.0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。