2

サイトコントローラーと API コントローラーを持つ MVC4 プロジェクトに取り組んでいます。サイト コントローラーの 1 つから API コントローラーに要求を送信するにはどうすればよいですか?

たとえば、次のような APIiController があるとします。

public class FooController : ApiController {
    [HttpGet]
    public int Add(int a, int b) {
        return a + b;
    }
}

/FooController/Add?a=1;b=2このコントローラーからリクエストを送信するにはどうすればよいですか?

public class BarController : Controller {
    [HttpGet]
    public int AddOneAndTwo() {
        //What goes here?
    }
}

編集: 私が本当にやりたかったのは、サイトのコントローラーから ApiController クラスのメソッドを呼び出すことでした。それを機能させるには、MVC4 マジックを呼び出す必要があると思いました。Felix と私の間のコメントによると、サイトの Controller に ApiController のインスタンスを作成して、そこから移動できます。それでも HTTP 経由で ApiController メソッドにアクセスする必要がある場合は、最初の質問に対する Felix の回答をご覧ください。

4

1 に答える 1

2

restsharp を使用したコードは次のようになります。

    protected IRestResponse GetResponse(int a, int b)
    {
        var client = new RestClient
        {
            BaseUrl = "http://localhost:8888/api/FooController"
        };
        var request = new RestRequest
        {
            DateFormat = DataFormat.Xml.ToString(),
            Resource = "Add",
            Method = Method.GET
        };
        request.AddParameter("application/json",
            JsonSerializer.JsonSerialize(new {a, b}),
            ParameterType.RequestBody);
        return client.Execute(request);
    }
于 2012-09-25T22:12:56.340 に答える