demo地址
GitHub相关demo地址:
对demo说明一下,非abp官网模板,使用Visual Studio 2019创建的asp.net core 2.2 webapi
项目,引入Abp.AspNetCore包,简单改造一下。
适配Abp
简单列举改造步骤:
按照上述步骤改造完成之后,运行站点,返回结果如下(已对返回的json字符串格式化以方便查看)
{
"result": [
"value1",
"value2"
],
"targetUrl": null,
"success": true,
"error": null,
"unAuthorizedRequest": false,
"__abp": true
}
WrapResult和DontWrapResult
使用属性WrapResult和DontWrapResult控制是否对Controller或者Action处理。默认情况下,会对返回结果封装,封装结果如上。[DontWrapResult]
等同于[WrapResult(WrapOnSuccess = false, WrapOnError = false)]
。
对我来说,我是不希望获取干净的返回,不需要什么封装。这时我可以再Controller和Action上添加[DontWrapResult]
,屏蔽封装。不想每添加一个Controller或者Action,都添加该属性?你需要全局配置Configuration.Modules.AbpAspNetCore()
。
配置如下
var result = new DontWrapResultAttribute();
Configuration.Modules.AbpAspNetCore().DefaultWrapResultAttribute.WrapOnError = result.WrapOnError;
Configuration.Modules.AbpAspNetCore().DefaultWrapResultAttribute.WrapOnSuccess = result.WrapOnSuccess;
详情可查看:如何全局配置WrapResult
全局配置之后,返回如下
[
"value1",
"value2"
]