ASP.NET Core API 接收参数去掉烦人的 [FromBody]
2021-06-18 00:03
标签:rom asp.net data wal 属性 一点 block 序列 indent 后台通过Visual Studio生成ASP.NET Core API项目之后,在Controller里添加如下代码 如图所示,name的值为walk dog,后台api获取结果如第三张图所示: 如图所示,前端会将页面填写的值进行序列化,但是后端依然获取不到值: 不论是postMan调用还是ajax调用,后台都获取不到name值和isComplete的值 测试如下:发现可以获取到相应的值,但是如果每个Post方法并含有类型参数的请求前面都添加这么一个属性,相比以前的Asp.Net Api 操作有点不习惯,甚至多余 增加一个Contrller,命名为BaseController, 并继承Controller ,代码如下所示: 然后在BaseController类上增加属性[ApiController],最终如下图所示: 最后修改所有API控制器的父类,改为继承BaseController 如图所示,此时可以看到已经没有[FromBody]了,需要注意一点是请求的ContentType必须为:application/json 如果没有该[ApiController]属性,则需要显式定义绑定源属性。如果没有[ApiController]或其他绑定源属性[FromQuery],ASP.NET Core运行时会尝试使用复杂的对象模型绑定器。复杂对象模型绑定器从值提供程序(具有已定义的顺序)中提取数据。例如,‘body model binder‘总是选择加入。 ASP.NET Core API 接收参数去掉烦人的 [FromBody] 标签:rom asp.net data wal 属性 一点 block 序列 indent 原文地址:https://www.cnblogs.com/lonelyxmas/p/10317857.html修改之前测试
// POST: api/Todo
[HttpPost]
public async Task
postMan调用
Jquery调用
返回结果
增加[FromBody]
进行修改
public class BaseController: Controller
{
}
修改之后测试
总结
文章标题:ASP.NET Core API 接收参数去掉烦人的 [FromBody]
文章链接:http://soscw.com/index.php/essay/95260.html