C# Web Api未绑定到模型
我试图将一个JSON对象发布到一个Web Api URL,但它没有绑定到模型 这似乎是同样的问题: 我尝试了他们所做的一切,但仍然不起作用。您可能注意到的一个区别是,我没有使用C# Web Api未绑定到模型,c#,json,model-binding,asp.net-web-api,C#,Json,Model Binding,Asp.net Web Api,我试图将一个JSON对象发布到一个Web Api URL,但它没有绑定到模型 这似乎是同样的问题: 我尝试了他们所做的一切,但仍然不起作用。您可能注意到的一个区别是,我没有使用DataContract属性,但我认为它们不应该是必需的,并且在尝试它们时没有任何区别 public class MyModel { public int Id { get; set; } } Public class MyController : ApiController { public int S
DataContract
属性,但我认为它们不应该是必需的,并且在尝试它们时没有任何区别
public class MyModel
{
public int Id { get; set; }
}
Public class MyController : ApiController
{
public int Save(MyModel myModel)
{
// myModel is always null
return 0;
}
}
控制器方法中似乎缺少[HttpPost]
属性。在上述情况下,这似乎不是严格要求的,也许这只是在发布原语时才需要
还有一点需要注意的是,如果您使用WebApi,我会使用更基于REST的语法,例如在控制器上使用方法Get、Post、Put ect,而不是命名方法
编辑:
你的帖子还有一个非常微妙的问题。标题行不能以
结尾
so内容类型:application/json;字符集=utf-8
应该是内容类型:application/json;charset=utf-8
这可能是一个编码问题。
我更改了编码,模型绑定成功完成
client.Encoding = Encoding.UTF8;
您的web.api路由看起来如何?尝试在fiddler中指定accept标头。在请求头中添加这一行:
Accept:“application/json”
Nope no,dice。我试了试,也试了试quotes@nemesv这实际上是不正确的,Accept:
在您执行get时用于可接受的返回类型,而不是在post中使用内容类型来指定正文的类型。当我试图通过get请求时,它说不支持。我假设它默认为Post,因为它接受的对象可能很大。所有其他接口都默认为Get@JoshRusso我很确定你需要为post方法赋予属性,除非它们被命名为post。我试着根据你的评论给它命名,但它仍然表现出same@JoshRusso当我的VS Upgrade刚刚创建了一个新的示例web api项目时,我会试一试,然后再给你回复,但这根本不起作用。我想知道我的安装是否有问题