1

asp web apiの投稿リクエストで複数の複雑なオブジェクトを投稿するにはどうすればよいですか?私が見つけたように見えることはすべて、リクエストの本文で許可されているオブジェクトタイプは1つだけであることを示唆しています。これは正しいです?もしそうなら、これのためのまともな回避策は何ですか?サンプルモデル:

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;
}

これをaspwebapiでどのように使用しますか?

4

1 に答える 1

0

Object2あなたはすでにタイプのプロパティを持っているのにObject1、なぜあなたはObject2別のパラメータとして持ちたいのですか?

私は配列型としてそれを持っていません代わりにのようなEnumerableの小道具としてObject2を持っています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 に答える