我正在开发一个具有站点 Controller 和 API Controller 的 MVC4 项目。如何从站点 Controller 之一向 API Controller 发送请求?
例如,我可能有一个如下所示的 APiController:
public class FooController : ApiController {
[HttpGet]
public int Add(int a, int b) {
return a + b;
}
}
如何从此 Controller 向 /FooController/Add?a=1;b=2
发送请求?
public class BarController : Controller {
[HttpGet]
public int AddOneAndTwo() {
//What goes here?
}
}
编辑:我真正想做的是从我的站点 Controller 调用我的 ApiController 类的方法,并且我认为我必须变出一些 MVC4 魔法才能使其工作。根据 Felix 和我之间的评论,我可以在我的站点 Controller 中创建 ApiController 的实例,然后从那里开始。但如果您仍然需要通过 HTTP 访问 ApiController 方法,那么,嘿,Felix 就是对我最初问题的回答。
最佳答案
使用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);
}
关于c# - 如何从 MVC4 中的另一个 Controller 向 API Controller 发出请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591790/