Skip to content

491134648/Kugar.UI.Web

 
 

Repository files navigation

该项目是从Kugar.Core解决方案中分离出来,独立管理

用于提供asp.net mvc5 / asp.net core mvc 的一些常用类库

旧的git历史 ,可以查看 https://gitee.com/kugar/Kugar.Core/tree/master/UI/Kugar.Core.Web https://gitee.com/kugar/Kugar.Core/tree/master/UI/Kugar.Core.Web.NetCore

NuGet

常用的类有

1.用于webapi中,使用json方式post数据,然后在action中,使用函数参数的方式进行接收,省去了需要为不同的action建立不同的model接收数据,并对参数提供数据校验的功能

  1) 在start.cs中:
      core 2.1 中:
          services.AddMvc().EnableJsonValueModelBinder(); //启用json方式的ModelBinder
      core 3.0 中:
          services.AddControllersWithViews().EnableJsonValueModelBinder(); //启用json方式的ModelBinder
  2) 在 controller中
      [FromBodyJson()]  //加上该特性,标识该action启用json绑定的方式,并可以设定是否在匹配名称时,忽略大小写
      public async Task<IActionResult> ApiTest(
              string keyword="",
              [Required](int productID,int qty)[] productlst, // 支持数组/单个形式的ValueTuple绑定
              [MinValue(1)]int pageIndex=1,
              [Range(10,100)]int pageSize=20)

  3) Http post json的方式提交如下格式数据:
      {
          keyword:"",
          pageIndex:1,
          pageSize:2,
          productlst:[
              {
                  productID:10,
                  qty:20
              }
          ]
      }

      注意的是content-type一定要 为application/json 或者text/json
  1. ImageActionResult 构建一个图片数据作为ActionResult

  2. QrCodeActionResult 构建一个二维码图片的ActionResult,传入string自动生成对应的二维码图片,后返回给客户端

  3. ValidateCodeResult 构建一个随机验证码图片ActionResult

  4. MyRequest类提供了一系列对Request的GetXXX系列函数以及其他通用操作函数

  5. HttpContext类提供了静态访问当前HttpContext的功能

    1)使用时,在start.cs中加入

        app.UseStaticHttpContext()
    

    2)使用时: HttpContext.Current

  6. ApplicationBuilderExtMethod 用于提供一些公用的函数

    1. AddPhysicalStaticFiles 扩展函数,用于比较方便的添加一个物理文件的映射
        app.AddPhysicalStaticFiles("uploads","uploads");  //将uploads文件开放外部访问
    
  7. RequestLocal类用提供每个链接才有的数据,类似于 ThreadLocal 功能,只是作用范围是一个Request范围内

About

用于asp.net mvc /asp.net core mvc 项目的类库,提供部分通用的功能类 该项目从 Kugar.Core 项目中分离出来,单独管理

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 90.9%
  • JavaScript 9.1%