1

有人可以帮忙吗?我有这个控制器:

public class CbpOutcomeController : ApiController
{
    // POST /api/CbpOutcome/1/ 
    public HttpResponseMessage PostCreateCbpOutcome(CbpOutcome co)
    {
        ... snip ...
        return resp_msg;
    }
}

而这条路线:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "HubProfilePostRoute", // Route name
            "hub/{controller}/{action}", // URL with parameters
            new { controller = "Home", action = "Index" } // Parameter defaults
        );

        routes.MapHttpRoute(
            name: "ProfileByRegionApi",
            routeTemplate: "api/{controller}/Region/{region_name}"
        );

        routes.MapHttpRoute(
            name: "ProfileByGlobalPriorityApi",
            routeTemplate: "api/{controller}/GlobalPriority/{priority_name}"
        );

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

当我使用这个 JSON 结构进行POSTto时:http://localhost:2515/api/CpbOutcome

{ "Id":0, "Description":"This is a description", "DisplayOrder": 3, 
  "ModifiedBy":"Somebody's name here", "Cbp": { "Id": 163 }}

我收到这条消息:

No type was found that matches the controller named 'CpbOutcome'.
4

1 回答 1

5

---编辑---

查看 API 类的拼写。

public class CbpOutcomeController : ApiController

然后查看您的 URL 的拼写:

http://localhost:2515/api/CpbOutcome

注意 Cbp 和 Cpb

---结束编辑---

API 控制器 URL 应位于WebApiConfig.cs文件中。

不在RouteConfig.cs文件内

分析 VS2012 为 Web API 项目提供的默认模板,您将看到它。

于 2012-11-02T14:19:55.723 回答