2012-11-02 55 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