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

  • 相关阅读:
    云计算分布式大数据神器Spark实战高手之旅
    Spring IOC及AOP学习总结
    Win7下不能查看xp系统共享的文件,解决方法
    c#怎样获取excel单元格的RGB颜色
    MySQL 全角转换为半角
    【剑指offer】旋转数组的最小值
    POJ 2524 :Ubiquitous Religions
    GitLal+sourceTree版本号管理
    ASP.NET MVC 过滤器(五)
    Java设计模式之观察者模式
  • 原文地址:https://www.cnblogs.com/wugh8726254/p/14901930.html
Copyright © 2011-2022 走看看