死的简单问题,可能不是那么简单的答案。发布JSON。
public void Post(Model1 model1, Model2 model2)
{}
填充了model1,但没有填充model2(null)。
public void Post(Model2 model2, Model1 model1)
{}
现在,填充了model2,但没有填充model1(null)。
为什么?
修改
两个参数的原因?模型2曾经从Model1引用,但是没有用。那是我分开的时候。
修改
右。感谢marcind对上述问题的回答。现在因为原始设置不起作用。我不再是形式宇宙了。我发布了Json。如果模型中有子对象,则在json中发布子对象。
鉴于
class ProductEditModel {
public string Name {get; set;}
}
class UserEditModel {
public string User {get; set;}
public ProductEditModel Product {get; set;}
}
以下
{"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"}}
答案 0 :(得分:2)
不确定您使用的是哪个版本,但我们已经确定的一般规则是,在绑定复杂类型时,Web API会将请求的整个主体视为表示单个实体,从而表示单个操作参数。在您的情况下,如果您想绑定多个Model
,您可以引入自定义绑定对象,或者您可以绑定到Model[]
或其他一些集合类型。