zoukankan      html  css  js  c++  java
  • Fromform

    .Net5的WebApi中的Post请求,FromBody和FromForm


    .Net5的WebApi中的Post请求,FromBody和FromForm
    FromBody特性的使用(推荐使用):只能接收单个对象(实体对象或动态类型(dynamic))作参数,无法绑定简单类型(int、string、decimal等)的参数
    FromForm特性的使用:接口参数为实体对象或或简单类型参数
    FromBody特性的使用(推荐使用):只能接收单个对象(实体对象或动态类型(dynamic))作参数,无法绑定简单类型(int、string、decimal等)的参数
    客户端Content-Type是application/json时,接口参数加[FromBody]能正常解析到参数(接口参数为实体对象或动态类型(dynamic)都能解析到参数)
    客户端Content-Type是application/x-www-formencoded时,接口参数加或不加[FromBody],接口报415 Unsupported Media Type
    客户端Content-Type是multipart/form-data时,接口参数加或不加[FromBody],接口报400 Bad Request
    前端代码:

    var into = JSON.stringify({ Id: 123, Name: "zsls" });
    console.log(into);
    $.ajax({
    url: "http://localhost:51882/Test/SetParams",
    data: into,
    type: "post",
    //application/x-www-formencoded、multipart/form-data、application/json
    contentType: "application/json",
    dataType: "json",
    success: function (res) {
    console.log("success===============" + res);
    },
    error: function (xhr, textStatus, errorThrown) {
    console.log("error===============" + xhr.responseText);
    }
    });
    后端代码:

    /// <summary>
    /// 学生信息
    /// </summary>
    public class Student
    {
    /// <summary>
    /// 学生Id
    /// </summary>
    public int Id { get; set; }
    /// <summary>
    /// 学生姓名
    /// </summary>
    public string Name { get; set; }
    }


    [HttpPost]
    public IActionResult SetParams([FromBody] Student stu)
    {
    return Content("OK");
    }

    [HttpPost]
    public IActionResult SetParams1([FromForm] dynamic obj)
    {
    return Content("OK");
    }
    FromForm特性的使用:接口参数为实体对象或或简单类型参数
    客户端Content-Type是multipart/form-data时(ajax指定contentType为false,axios指定Content-Type为multipart/form-data),以FormData格式提交数据接口参数加[FromForm]能正常解析到参数(接口参数为实体对象或或简单类型参数都能解析到参数)
    前端代码:

    var formData = new FormData();
    formData.append("id", 12);
    formData.append("name", "fls");
    $.ajax({
    url: "http://localhost:51882/Test/SetParams",
    data: formData,
    type: "post",
    processData: false,
    contentType: false,
    dataType: "json",
    success: function (res) {
    console.log("success===============" + res);
    },
    error: function (xhr, textStatus, errorThrown) {
    console.log("error===============" + xhr.responseText);
    }
    });

    后端代码:

    /// <summary>
    /// 学生信息
    /// </summary>
    public class Student
    {
    /// <summary>
    /// 学生Id
    /// </summary>
    public int Id { get; set; }
    /// <summary>
    /// 学生姓名
    /// </summary>
    public string Name { get; set; }
    }

    [HttpPost]
    public IActionResult SetParams([FromForm] int id, [FromForm] string name)
    {
    return Content($"OK,{id},{name}");
    }

    [HttpPost]
    public IActionResult SetParams1([FromForm] Student stu)
    {
    return Content("OK");
    }
    原文链接:https://blog.csdn.net/weixin_52437470/article/details/113726646

  • 相关阅读:
    Codeforces Gym 100571A A. Cursed Query 离线
    codeforces Gym 100500 J. Bye Bye Russia
    codeforces Gym 100500H H. ICPC Quest 水题
    codeforces Gym 100500H A. Potion of Immortality 简单DP
    Codeforces Gym 100500F Problem F. Door Lock 二分
    codeforces Gym 100500C D.Hall of Fame 排序
    spring data jpa 创建方法名进行简单查询
    Spring集成JPA提示Not an managed type
    hibernate配置文件中的catalog属性
    SonarLint插件的安装与使用
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/14901930.html
Copyright © 2011-2022 走看看