Web API Post 方法 frombody 为空
Posted
技术标签:
【中文标题】Web API Post 方法 frombody 为空【英文标题】:Web API Post Method frombody is null 【发布时间】:2015-08-07 12:37:49 【问题描述】:我有发布方法
[HttpPost]
public HttpResponseMessage Post(MemberViewModel model)
同一控制器中的另一个发布方法。我在登录方法中添加属性路由
[Route("api/members/login")]
[HttpPost]
public HttpResponseMessage Login([FromBody]LoginViewModel model)
public class LoginViewModel
public string UserName get; set;
public string Password get; set;
默认的 post 方法工作正常,但是 当我调用 Login Post Method 模型时(LoginViewModel 始终为空)。我用 fiddler 做测试。
提琴手
POST http://localhost:49595/api/members/login/Http/1.1
用户代理:提琴手
内容类型:应用程序/JSON
主机:本地主机:49595
内容长度:79
请求正文 “用户名”:customer@gmail.com, “密码”:“393f83x393”
使用一个参数就可以正常工作
[Route("api/members/login")]
[HttpPost]
public HttpResponseMessage Login([FromBody]string userName)
请指教 Model 有什么问题
谢谢。
【问题讨论】:
【参考方案1】:您的 Fiddler 会显示这一行:
请求正文“用户名”:customer@gmail.com,“密码”:“393f83x393”
这不是有效的 JSON。电子邮件帐户应该用单引号或双引号括起来。
【讨论】:
您好 JotaBe,感谢您的回答。实际上,我忘记在我的问题中为用户名加上双引号。我认为 Fiddler 有问题。以上是关于Web API Post 方法 frombody 为空的主要内容,如果未能解决你的问题,请参考以下文章
使用 HttpClient 和 Web API 方法 [FromBody] 参数发布到 Web API 最终为空