2

我正在开发一个具有站点控制器和 API 控制器的 MVC4 项目。如何从站点控制器之一向 API 控制器发送请求?

例如,我可能有一个如下所示的 APiController:

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 和我之间的评论,我可以在我的站点控制器中创建我的 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 回答