栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

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

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

.Net5的WebApi中的Post请求,FromBody和FromForm
    • FromBody特性的使用(推荐使用):只能接收单个对象(实体对象或动态类型(dynamic))作参数,无法绑定简单类型(int、string、decimal等)的参数
    • FromForm特性的使用:接口参数为实体对象或或简单类型参数

FromBody特性的使用(推荐使用):只能接收单个对象(实体对象或动态类型(dynamic))作参数,无法绑定简单类型(int、string、decimal等)的参数
  1. 客户端Content-Type是application/json时,接口参数加[FromBody]能正常解析到参数(接口参数为实体对象或动态类型(dynamic)都能解析到参数)
  2. 客户端Content-Type是application/x-www-formencoded时,接口参数加或不加[FromBody],接口报415 Unsupported Media Type
  3. 客户端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);
	    }
	});

后端代码:

	/// 
	/// 学生信息
	/// 
	public class Student
	{
	    /// 
	    /// 学生Id
	    /// 
	    public int Id { get; set; }
	    /// 
	    /// 学生姓名
	    /// 
	    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特性的使用:接口参数为实体对象或或简单类型参数
  1. 客户端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);
	    }
	});

后端代码:

	/// 
	/// 学生信息
	/// 
	public class Student
	{
	    /// 
	    /// 学生Id
	    /// 
	    public int Id { get; set; }
	    /// 
	    /// 学生姓名
	    /// 
	    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");
    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/905334.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号