C# Can';t调用第二个控制器上的操作

C# Can';t调用第二个控制器上的操作,c#,asp.net-mvc,C#,Asp.net Mvc,我找不到第二个控制器来操作。我定义了第一个控制器,并毫无问题地测试了它的所有方法。当我尝试在第二个控制器上调用方法时,我收到以下错误消息: <Error> <Message> No HTTP resource was found that matches the request URI 'http://localhost:9801/api/defense/getgameopponents/seattle seahawks'. </Message> <Me

我找不到第二个控制器来操作。我定义了第一个控制器,并毫无问题地测试了它的所有方法。当我尝试在第二个控制器上调用方法时,我收到以下错误消息:

<Error>
<Message>
No HTTP resource was found that matches the request URI 'http://localhost:9801/api/defense/getgameopponents/seattle seahawks'.
</Message>
<MessageDetail>
No action was found on the controller 'Defense' that matches the name 'get'.
</MessageDetail>
</Error>
最后是我的路由表。我有一种强烈的感觉,这就是问题所在,但我不能对此指手画脚。这是我第一次尝试创建这样一个项目,所以任何帮助都将不胜感激

  namespace Test
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "GetPlayerPastOpponentsApi",
                routeTemplate: "api/{controller}/{action}/{position}/{teamname}/{playername}"
            );

        config.Routes.MapHttpRoute(
            name: "GetPlayersApi",
            routeTemplate: "api/{controller}/{action}/{position}/{teamname}"
        );

        config.Routes.MapHttpRoute(
            name: "GetPlayerStatsApi",
            routeTemplate: "api/{controller}/{action}/{position}/{teamname}/{playername}"
        );

        config.Routes.MapHttpRoute(
            name: "GetGameOpponentsApi",
            routeTemplate: "api/{controller}/{action}/{team}"
        );

        config.Routes.MapHttpRoute(
            name: "GetOpponentsStatsApi",
            routeTemplate: "api/{controller}/{action}/{opponentname}"
        );

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

        config.EnableSystemDiagnosticsTracing();
    }
}

}

看起来您缺少动作方法上的
公共
名称

public /* <---THIS */ Defense GetOpponentsStats(string teamName)
{
    return DefenseController.repository.GetOpponentStats(new Defense(teamName));
}

public/*你为我节省了这么多时间和压力。非常感谢。真不敢相信我错过了那个不同。
  namespace Test
{
    public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.Routes.MapHttpRoute(
                name: "GetPlayerPastOpponentsApi",
                routeTemplate: "api/{controller}/{action}/{position}/{teamname}/{playername}"
            );

        config.Routes.MapHttpRoute(
            name: "GetPlayersApi",
            routeTemplate: "api/{controller}/{action}/{position}/{teamname}"
        );

        config.Routes.MapHttpRoute(
            name: "GetPlayerStatsApi",
            routeTemplate: "api/{controller}/{action}/{position}/{teamname}/{playername}"
        );

        config.Routes.MapHttpRoute(
            name: "GetGameOpponentsApi",
            routeTemplate: "api/{controller}/{action}/{team}"
        );

        config.Routes.MapHttpRoute(
            name: "GetOpponentsStatsApi",
            routeTemplate: "api/{controller}/{action}/{opponentname}"
        );

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

        config.EnableSystemDiagnosticsTracing();
    }
}
public /* <---THIS */ Defense GetOpponentsStats(string teamName)
{
    return DefenseController.repository.GetOpponentStats(new Defense(teamName));
}