向ASP.NET Web API发布数据

17

我正在努力理解新的ASP.NET Web API。

到目前为止,我已经能够创建这个方法签名并成功地连接到它,并获得了一个有效的响应...

[HttpPost]
public HttpResponseMessage CreateAccount()

我能使用Fiddler向这个方法发送请求,并验证它已经收到了请求。

但是,当我尝试传递数据时遇到了问题。

我尝试的第一件事是...

[HttpPost]
public HttpResponseMessage CreateAccount([FromBody]string email, [FromBody]string password)

我在Fiddler中向请求主体键入

email:xyz,password:abc

当我这样做时,我会收到一个500错误,指出:“无法将多个参数('email'和'password')绑定到请求的内容。”

我还尝试了这种方法签名...

[HttpPost]
public HttpResponseMessage CreateAccount([FromBody]UserAccountRequestData data)

使用UserAccountRequestData作为简单的POCO。

public class UserAccountRequestData
{
    public string Email { get; set; }
    public string Password { get; set; }
}

我将

{Email:xyz,Password:abc}

data:{Email:xyz,Password:abc}

放在请求体中。无论哪种情况,我都能在调试时到达方法,但数据对象始终为空。

我需要了解如何创建接受强类型POCO和多个原始类型(例如字符串和整数)的API方法。

谢谢。

1个回答

17
您需要设置Content-Type头为application/json,然后提供有效的JSON。
{"Email":"xyz","Password":"abc"}

2
对于 Darrel Miller 的回答点赞。你也可以参考 向 Web API 发送 JSON 对象 中给出的答案。它为你的问题提供了示例代码。 - Amit Rai Sharma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接