wcf-web-api - ASP.NET Web API 绑定(bind)方法

标签 wcf-web-api asp.net-mvc-4 asp.net-web-api

我有两个这样的方法

public class ProductController : ApiController
{
    public Product GetProductById(int id)
    {
        var product = ... //get product
        return product;
    }

    public Product GetProduct(int id)
    {
        var product = ... //get product
        return product;
    }
}

当我调用 url 时:GET http://localhost/api/product/1 .我希望调用第一个方法,而不是第二个方法。
我该怎么做?

最佳答案

您需要唯一的 URI。您可以修改路线以获取此信息:

routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{action}/{id}",
        defaults: new { id = RouteParameter.Optional }

);

现在您可以像这样访问您的 API:

http://localhost/api/product/GetProductById/1

http://localhost/api/product/GetProduct/1

我写了一点introduction to ASP.NET Web API它显示了与 WCF Web API 的一些差异。

您还可以添加默认操作,例如列出所有产品的那个,因此您可以执行以下操作:

http://localhost/api/product/  // returns the list without specifying the method

另外一个就是这样调用的

http://localhost/api/product/byid/1  // returns the list without specifying the method

我所做的是拥有一个 ProductsController 和一个 ProductController。 ProductsController 负责对 T 的集合进行操作(获取所有),而 ProductController 负责对 T 进行操作(例如获取特定集合)。

关于wcf-web-api - ASP.NET Web API 绑定(bind)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9325735/

相关文章:

sql - 从ASP.NET MVC中的现有数据库生成种子代码

c# - 帖子上的 MVC 渲染操作

javascript - 如何在 mvc 4 按钮单击上显示 jquery 模式弹出窗口

c# - 未发送 HttpClient 身份验证 header

wcf-web-api - TestClient 去哪儿了?

javascript - 来自 Web api 的值未转换

xml - 为什么我的 ASP.Net Core Web API Controller 不返回 XML?

unit-testing - 单元测试 Swagger 输出

wcf - 如果我想在 IIS 中执行 REST,我应该现在就使用 WCF Web Api 吗?

c# - 集成 DotNetOpenAuth 和 WCF WebAPI