2012-11-02 22 views
1

如何在asp web api中的发布请求中发布多个复杂对象?我似乎发现的一切都表明,在请求的主体中只允许有一种对象类型。它是否正确?如果是的话,这是什么是一个体面的解决方法? 样品型号:在Asp Web API中处理复杂对象

public class Object1 
{ 
    int numWheels { get; set; } 
    string seatheight { get; set; } 
    public Object2[] shopLoc { get; set; } 
} 

public class Object2 
{ 
    string streetName { get; set; } 
    double revenue { get; set; } 
} 
Sample Products controller: 
Post:products/Post/ 
public Object1 Post(Object1 tricycle, Object2 cyclingShop) 
{ 
return tricycle; 
} 

我将如何使用这与ASP网页API?

回答

0

您已在Object1中拥有Object2类型的属性,那么为什么要将Object2作为单独的参数?

我不会把它作为数组类型,而不是有对象2作为Enumerable道具Object1

public class Object1 
{ 
    int numWheels { get; set; } 
    string seatheight { get; set; } 
    public IEnumerable<Object2> shopLoc { get; set; } 
} 

已经完成,在视图(强类型),你可以使它像

<%@ Page Inherits="ViewPage<Object1>" %> 

<% for (int i = 0; i < Model.shoploc.Count(); i++) { %> 

    <%: Html.TextBoxFor(m => m[i].streetName) %> 
    <%: Html.TextBoxFor(m => m[i].revenue) %> 
<% } %> 

如果您有多个店铺位置,那么默认模型绑定器将绑定商店的集合就好了

POST行动应该像

public Object1 Post(Object1 tricycle) 
{ 
return tricycle; 
} 

A Good Read