2

コントローラー関数を Web API にマップしようとしています。

config.Routes.MapHttpRoute(
              name: "RPCRoutingApiCaseStudy",
              routeTemplate: "api/{controller}/{action}/{ServiceID}",
              defaults: new { ServiceID = RouteParameter.Optional }
              );

問題は、私のコントローラーでは、 ServiceID が配列であると想定されていることです。配列を受け入れるようにマッピングを設定するにはどうすればよいですか? また、どのように見えるでしょうか? それが明白な質問である場合は申し訳ありませんが、私はこのようなことに非常に慣れておらず、学ぼうとしています.

int のように入力する通常のパラメーターを使用してそれを行う方法を理解していますurl/api/controller/method/5

配列に対して何をすべきかわかりません。

4

1 に答える 1

0

複雑な型を Web API に渡すには、IEnumerable 型を含むヘルパー クラスを作成し、JSON カプセル化を介してそのオブジェクトを Web API に渡す必要があります。

次の例では、POST メソッドを受け取り、List を含む CustomListType オブジェクトを受け取ります。その後、オブジェクトで好きなことを行うことができます。

public class ValuesController : ApiController
{

    [System.Web.Http.AcceptVerbs("POST")]
    public bool POST(CustomListType myList)
    {
        //Do stuff here

        return true;
    }

    public class CustomListType
    {
        public List<int> myArray { get; set; }
    }


}

Chrome 用Advanced Rest Clientの使用; オブジェクトを送信して投稿をテストできます。

{myArray:[0,1,2]}

CustomListType には「myArray」というメンバーがあるため、JSON オブジェクトにも「myArray」があることに注意してください。

そこにデバッグ行を入れると、オブジェクトと「myArray」の値を確認できるはずです

于 2013-03-07T22:55:20.600 に答える