Web Api不绑定到模型

时间:2013-01-05 22:56:02

标签: c# json model-binding asp.net-web-api

我正在尝试将JSON对象发布到Web Api URL,但它没有绑定到模型。

这似乎是同样的问题:ASP.Net Web Api not binding model on POST

我尝试了他们所做的一切,但仍然无效。您可能注意到的一个区别是我没有使用DataContract属性,但我不相信它们应该被要求,并且在我尝试它们时没有任何区别。

public class MyModel
{
    public int Id { get; set; }
}

Public class MyController : ApiController
{
    public int Save(MyModel myModel)
    {
        // myModel is always null
        return 0;
    }
 }

Fiddler setup

2 个答案:

答案 0 :(得分:5)

你的控制器方法似乎缺少[HttpPost]属性。 在上面的例子中,这实际上并不是严格要求的,也许只有在发布原语时才需要?

另外,作为一个注释,如果您使用WebApi,我将使用更基于REST的语法,例如使用方法Get,Post,Put ect on your controller而不是命名方法

修改

您的帖子还有另外一个非常微妙的问题。标题行无法以;结尾,因此Content-Type: application/json; charset=utf-8;应为Content-Type: application/json; charset=utf-8

答案 1 :(得分:0)

可能是编码问题。 我更改了编码,模型绑定成功完成。

client.Encoding = Encoding.UTF8;