1

在我的 web api 中,我尝试获取 2 个 Get 方法。一个是带参数的,一个是不带参数的。

 public HttpResponseMessage Get()
    {}  
 public HttpResponseMessage GetAll(int id)
    {}

我的路由是这样的

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id =  UrlParameter.Optional }

第一个获取方法是返回值。但是第二个获取参数的方法给出错误。请给一些建议。提前谢谢

4

1 回答 1

1

您所展示的内容适用于 MVC。Web API 的 Visual Studio 项目模板在 App_Start 下的 WebApiConfig.cs 中创建了类似这样的内容:

routes.MapHttpRoute(
    name: "API Default",
    routeTemplate: "api/{controller}/{id}",
    defaults: new { id = RouteParameter.Optional }
);

这样,一个 GET 请求 on http://localhost:<port>/api/yourcontrollershould callGet()并且 GET on http://localhost:<port>/api/yourcontroller/123should call GetAll(int)。有关更多信息,请参阅内容。

于 2013-06-25T13:19:42.197 回答