使用 Fiddler 发布时使用 FromBodyAttribute 的 WebAPI 模型为空
WebAPI model is null using FromBodyAttribute when posting using Fiddler
您好,还有一个post请求为空的问题。我提到了所有关于相同内容的 posts,这使它更加混乱。
我的问题如下 我有一个实体 Class
public class ProductEntity
{
public int ProductId { get; set; }
public string ProductName { get; set; }
}
和控制器class
// POST api/product
public int Post([FromBody]ProductEntity productEntity)
{
return _productServices.CreateProduct(productEntity);
}
我正在使用带有这些选项的 fiddler,如下图所示
在提琴手尝试 post 之后,我总是得到空值。
我遵循了 post 并根据描述,因为 Product 是一个复杂类型,我不应该使用 FromBody
属性,但无论如何我都无法获取对象,而只有 null 是通过。
我什至遵循了 msdn link for parameter-binding-in-aspnet-web-api 但感到困惑。请让我知道我做错了什么。
据我所知,您的代码是正确的,但是您尝试在 fiddler composer 中发送的内容格式不正确 JSON,因此您的模型未被解析。因此为空值。
这是您根据附加图片尝试发送的内容
{
"ProductId":8
"ProductName":"MobilePhone"
}
请注意,您在 "ProductId":8
之后缺少一个逗号 ,
这是您应该发送的内容
{
"ProductId":8,
"ProductName":"MobilePhone"
}
我终于成功地用 fiddler 发送了一个 POST - 我需要把
Content-Type: application/x-www-form-urlencoded
在请求头中,在JSON语句前加一个=:
={"Name":"Turbo Tina","Email":"na@Turbo.Tina"}
我受到这个关于 WCF 和 Fiddler 的 post 的启发:POST to WCF from Fiddler succeeds but passes null values
如果我而不是 "simple" 类型的字符串需要方法中的 JObject:
public dynamic Post([FromBody]JObject value)
我可以用
Content-Type: application/json
并删除 JSON 语句前的 =。
您好,还有一个post请求为空的问题。我提到了所有关于相同内容的 posts,这使它更加混乱。
我的问题如下 我有一个实体 Class
public class ProductEntity
{
public int ProductId { get; set; }
public string ProductName { get; set; }
}
和控制器class
// POST api/product
public int Post([FromBody]ProductEntity productEntity)
{
return _productServices.CreateProduct(productEntity);
}
我正在使用带有这些选项的 fiddler,如下图所示
在提琴手尝试 post 之后,我总是得到空值。
我遵循了 post 并根据描述,因为 Product 是一个复杂类型,我不应该使用 FromBody
属性,但无论如何我都无法获取对象,而只有 null 是通过。
我什至遵循了 msdn link for parameter-binding-in-aspnet-web-api 但感到困惑。请让我知道我做错了什么。
据我所知,您的代码是正确的,但是您尝试在 fiddler composer 中发送的内容格式不正确 JSON,因此您的模型未被解析。因此为空值。
这是您根据附加图片尝试发送的内容
{
"ProductId":8
"ProductName":"MobilePhone"
}
请注意,您在 "ProductId":8
,
这是您应该发送的内容
{
"ProductId":8,
"ProductName":"MobilePhone"
}
我终于成功地用 fiddler 发送了一个 POST - 我需要把
Content-Type: application/x-www-form-urlencoded
在请求头中,在JSON语句前加一个=:
={"Name":"Turbo Tina","Email":"na@Turbo.Tina"}
我受到这个关于 WCF 和 Fiddler 的 post 的启发:POST to WCF from Fiddler succeeds but passes null values
如果我而不是 "simple" 类型的字符串需要方法中的 JObject:
public dynamic Post([FromBody]JObject value)
我可以用
Content-Type: application/json
并删除 JSON 语句前的 =。