1

RestSharpとWebApiをいじり始めたばかりですが、少し問題が発生しました。

これがベストプラクティスであるか可能であるかはわかりませんが、コードを通じてデモンストレーションします(これは私の正確なコードではありませんが、まったく同じ概念です)

    [HttpPost]
    public HttpResponseMessage CreateEmployee(Employee emp, int employeeType)
    {
        // CREATE EMPLOYEE
        return Request.CreateResponse(HttpStatusCode.Created, emp.id);
    }

RestSharpを使用してこれをテストするためのコンソールアプリを作成しました。これが私が持っているものです:

        var client = new RestClient();
        client.BaseUrl = @"http://localhost:15507";

        var employee = new Employee();
        //populate employee model

        postrequest.Method = Method.POST;
        postrequest.Resource = "api/Employee/CreateEmployee";
        postrequest.AddHeader("Accept", "application/json");
        postrequest.AddHeader("Content-Type", "application/json");
        postrequest.RequestFormat = DataFormat.Json;

        postrequest.AddBody(new { emp = employee, listId = 2 });
        var res = client.Execute(postrequest);

私が得るエラーは、employeeTypeパラメーターがnullとして入ってくることです。これを正しくフォーマットしていますか?これは可能でさえありますか?

WebApiアクションメソッドからemployeeTypeパラメーターを削除し、リクエストを次のように変更すると、次のようになります。

        postrequest.AddBody(employee);

すべてが正常に動作します。

何か案は?ありがとう

4

1 に答える 1

1

uriからemployeetypeを期待していて、それが定義されたルートの一部ではない場合は、クエリ文字列パラメーターとして送信できます...例:

api / Employee / CreateEmployee?employeeType =

于 2012-08-30T00:48:49.223 に答える