asp.net-mvc – 控制器操作无法从JSON读取Guid POST
发布时间:2020-12-15 20:51:54 所属栏目:asp.Net 来源:网络整理
导读:我有一个Controller动作声明为: [Route("api/person")][HttpPost]public async TaskIActionResult Person([FromBody] Guid id) { ... } 我发帖到它: POST /api/person HTTP/1.1Host: localhost:5000Content-Type: application/jsonCache-Control: no-cache
我有一个Controller动作声明为:
[Route("api/person")] [HttpPost] public async Task<IActionResult> Person([FromBody] Guid id) { ... } 我发帖到它: POST /api/person HTTP/1.1 Host: localhost:5000 Content-Type: application/json Cache-Control: no-cache Postman-Token: 747a5d76-398c-e1c7-b948-b276bb24976c { "id": "b85f75d8-e6f1-405d-90f4-530af8e060d5" } 我的动作被击中,但它收到的Guid总是一个Guid.Empty值(即:它没有得到我传递的值). 请注意,如果我使用url参数而不是[FromBody],这可以正常工作,但我想使用http帖子的主体. 解决方法
如
Web API documentation中所述:
此外,在使用[FromBody]部分的同一篇文章中,您可以看到可以在参数上添加属性[FromBody]的示例,以便绑定请求正文中的值,就像您一样.但是这里是catch – 示例显示,在这种情况下,请求主体应该包含原始值,而不是JSON对象. 所以在你的情况下你有两个选择: 第一个选项是更改您的请求以提供原始值而不是JSON对象 POST /api/person HTTP/1.1 Host: localhost:5000 Content-Type: application/json Cache-Control: no-cache Postman-Token: 747a5d76-398c-e1c7-b948-b276bb24976c "b85f75d8-e6f1-405d-90f4-530af8e060d5" 第二个选项是提供具有单个属性的复杂对象并将其用作参数: public class Request { public Guid Id { get; set; } } [Route("api/person")] [HttpPost] public async Task<IActionResult> Person([FromBody] Request request) { ... } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- C#使用Linq to csv读取.csv文件数据
- asp.net-mvc-3 – 将字符串数组绑定到MVC Razor中的DropDow
- asp-classic – 动态增加数组大小
- 如何在使用ASP.NET MVC的jQuery AJAX调用中触发“错误”回调
- asp.net-mvc-3 – 实体框架将float数据类型映射为double
- asp.net-mvc-3 – 错误:在登录时未找到视图’xx’或其主服
- asp.net-mvc – 模型绑定不起作用
- asp.net-mvc – 是否有一个ASP.NET MVC HtmlHelper的图像链
- asp.net – 如何防止未经授权的蜘蛛侠
- asp.net – ASP MVC – 默认的HTTP标头有任何常量吗?
推荐文章
站长推荐
- asp.net-mvc – .net Mvc 3 Ajax.BeginForm,获取
- asp.net-mvc – Azure SignalR服务连接未激活
- asp.net – 使用ViewComponent的Ajax
- asp.net-mvc – 什么CAPTCHA系统与ASP.NET MVC兼
- asp.net-mvc – ASP.Net Core在调试模式下运行时
- .net – MVC3与EF 4.1和EntityState.Modified更新
- asp.net-mvc – 运行Update-Database时出错
- ASP.NET MVC“组件”
- asp.net-mvc – 无法使用Simple Injector为每个请
- asp.net-mvc – HTML.CheckBox(string)计算为两个
热点阅读