c# - 如何从 MVC4 中的另一个 Controller 向 API Controller 发出请求?

标签 c# asp.net-mvc-4

我正在开发一个具有站点 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/

相关文章:

c# - 将 'System.Collections.Generic.IEnumerable<T>' 转换为 'System.Collections.ObjectModel.Collection<T>'

c# - Kendo 组合框不显示与模式中的值相对应的文本

c# - 如何确保 IsInRole 检查不使用缓存的凭据

c# - 替换和替换所有 c# windows 窗体

c# - .NET MVC API Controller 中对 http post 请求的 400 错误请求

c# - 按钮未命中 mvc 中的 javascript 函数

java - 如何在java中以无符号方式将字节数组转换为Base 64字符串?

c# - ASP.NET MVC 我正在尝试使用(部分 View )在同一页面中添加评论产品(http post)

asp.net-mvc - 为什么 ASP.NET MVC 4 有这么多 NuGet 包,哪些真正重要?

c# - 如何在 Razor View 中指定全局 MVC 布局而不指定布局路径