• Web Api 模型绑定 一


    [https://docs.microsoft.com/zh-cn/aspnet/core/web-api/?view=aspnetcore-2.2]
    1.模型绑定
      简单模型绑定针对简单类型(如string,int,DateTime等)可进行单一绑定;但若遇到复杂类型,则需要通过反射和递归遍历查找,查找模式paramter_name.property_name。
        >>> 对于Collection类型,模型查找将查找parameter_name[index]或[index]的匹配项
        >>> 对于Dictionary类型,模型查找将查找parameter_name[key]或[key]的匹配项
      默认模型绑定行为将根据参数的类型将参数设置为其默认值
        >>> 如 T[] => Array.Empty<T>()
        >>> string => null
        >>> int? => null
        >>> T => default(T)
      如果绑定失败,MVC不会引发错误,需要用户检查ModelState.IsValid属性
    2.自定义模型绑定行为
      [BindRequired]
      [BindNever]
      [FromHeader] [FromQuery] [FromRoute] [FromForm]
      [FromService]
      [FromBody]
      [ModelBind]
    3.全局自定义模型绑定和验证
      禁用对特定类型的所有模型的模型绑定
      services.AddMvc().AddMvcOptions(options => options.ModelMetadataDetailsProviders.Add(
            new ExcludeBindingMetadataProvider(typeof(System.Version))));
      禁用对特定类型的属性的验证
      services.AddMvc().AddMvcOptions(options => options.ModelMetadataDetailsProviders.Add(
            new SuppressChildValidationMetadataProvider(typeof(System.Guid))));
    4.绑定请求正文中的带格式数据
      对于用[FromBody]修饰的每一个操作,最多可以有一个参数。
      
    正文格式除了MVC默认情况下的json处理,也可手动添加对其他格式的处理,比如xml

      >>> services.AddMvc().AddXmlSerializerFormatters();
  • 相关阅读:
    Redis之面试题总结
    nginx入门,安装
    NGINX工作原理(2)
    Ngnx工作原理(1)
    Linux之常用脚本
    进程管理工具之supervisor[详解]
    PHP进阶书籍
    LVS、Nginx及HAProxy
    高级程序员与初级程序员差别在哪里?
    详解Wox
  • 原文地址:https://www.cnblogs.com/az4215/p/10894267.html
Copyright © 2020-2023  润新知