在Asp Web API中处理复杂对象

时间:2012-11-02 14:15:03

标签: asp.net asp.net-mvc rest

如何在asp web api中的post请求中发布多个复杂对象?我似乎发现的所有内容都表明在请求正文中只允许一种对象类型。它是否正确?如果是这样,对于这个有什么好的解决方法?    样本模型:

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 web api中使用它?

1 个答案:

答案 0 :(得分:0)

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

我不会将它作为数组类型而是将Object2作为Enumerable的{​​{1}}道具

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

A Good Read