Asp.net mvc 4 WebAPI只绑定第一个参数

Asp.net mvc 4 WebAPI只绑定第一个参数,asp.net-mvc-4,asp.net-web-api,Asp.net Mvc 4,Asp.net Web Api,死一般简单的问题,可能不是那么简单的答案。发布JSON public void Post(Model1 model1, Model2 model2) {} 已填充模型1,但未填充模型2(null) 现在,填充了model2,但没有填充model1(null) 为什么? 编辑 为什么有两个参数?Model2过去是从Model1引用的,但这不起作用。那就是我把他们分开的时候 编辑 对。感谢马辛德对上述问题的回答。现在由于最初的设置不起作用的原因。我不再是宇宙的形式。我发布Json。如果模型中有子对

死一般简单的问题,可能不是那么简单的答案。发布JSON

public void Post(Model1 model1, Model2 model2)
{}
已填充模型1,但未填充模型2(null)

现在,填充了model2,但没有填充model1(null)

为什么?

编辑

为什么有两个参数?Model2过去是从Model1引用的,但这不起作用。那就是我把他们分开的时候

编辑

对。感谢马辛德对上述问题的回答。现在由于最初的设置不起作用的原因。我不再是宇宙的形式。我发布Json。如果模型中有子对象,则在json中发布子对象

给定

以下

{"user": "philip", "product.name": "barbie"}
这是行不通的。如果在js中尝试设置语义等价物,甚至会出现错误

{user: "philip", product.name: "barbie"}
以下两项工作都没有,我不知道他们为什么会:

{"user": "philip", "productname": "barbie"}


{"user": "philip", "product_name": "barbie"}
我的职业是什么,哪些是显而易见的

{"user": "philip", "product": {"name": "barbie"}}
请踢我

当心!如果对上述模型进行相应的编辑,则以下操作将不起作用

{"user": "philip", "ProductEditModel": {"name": "barbie"}}

不确定您使用的是哪个版本,但我们已经确定的一般规则是,当绑定复杂类型时,Web API将整个请求体视为表示单个实体,从而表示单个操作参数。在您的情况下,如果要绑定多个
模型
s,可以引入自定义绑定对象,也可以绑定到
模型[]
或其他集合类型。

模型[]不起作用。他们真的是不同的类型。最初是Model1.Model2设置。我是不是很快就放弃了?
{"user": "philip", "product": {"name": "barbie"}}
{"user": "philip", "ProductEditModel": {"name": "barbie"}}