zoukankan      html  css  js  c++  java
  • Abp小知识-如何全局设置DontWrapResult属性

    demo地址

    GitHub相关demo地址:https://github.com/PuzzledAlien/DotNetCore_Practice/tree/master/ABP.Demo/WebApplication1
    对demo说明一下,非abp官网模板,使用Visual Studio 2019创建的asp.net core 2.2 webapi项目,引入Abp.AspNetCore包,简单改造一下。

    适配Abp

    简单列举改造步骤:

    1. 初始化项目
    2. 通过nuget引入Abp.AspNetCore
    3. 创建module
    4. 改造Startup
    5. Controller需继承AbpController

    按照上述步骤改造完成之后,运行站点,返回结果如下(已对返回的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"
    ]
    
  • 相关阅读:
    20171121
    20171117
    20171106
    20171031
    20171024
    20170924
    20170721
    商品的分类
    会员价格的修改
    会员价格删除
  • 原文地址:https://www.cnblogs.com/AlienXu/p/11202541.html
Copyright © 2011-2022 走看看