1

如何在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 web api 一起使用?

4

1 回答 1

0

你已经有一个类型的属性,Object2那么Object1为什么要Object2作为单独的参数呢?

我不会将它作为数组类型,而是将 Object2 作为类似的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;
}

好读

于 2012-11-02T16:15:53.357 回答