Asp.net 在MVC3中调用MVC4 web api控制器

Asp.net 在MVC3中调用MVC4 web api控制器,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-web-api,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Web Api,我使用的是MVC3应用程序和web api控制器 我想用参数调用一个方法 但是当我尝试调用该方法时,我得到了内部服务器错误(500) 我的global.asax是: routes.MapHttpRoute( name: "PostMethod2", routeTemplate: "api/mycontroller/{a}/{b}", ); 我是否应该向应用程序\u start of Global.asax添加任何代码以路由到参数化方法?您的路由配置似乎不合法,正确的路由配置如下所示 r

我使用的是MVC3应用程序和web api控制器

我想用参数调用一个方法

但是当我尝试调用该方法时,我得到了内部服务器错误(500) 我的global.asax是:

routes.MapHttpRoute(
  name: "PostMethod2",
  routeTemplate: "api/mycontroller/{a}/{b}",
);

我是否应该向应用程序\u start of Global.asax添加任何代码以路由到参数化方法?

您的路由配置似乎不合法,正确的路由配置如下所示

routes.MapHttpRoute(
  name: "PostMethod2",
  routeTemplate: "api/{controller}/{action}/{a}",
);
注意,“{controller}”和“{action}”不能是随机的。MVC使用它分别映射到控制器和操作(方法)。{a} 将映射到您的参数“int a”。MVC使用约定的映射

RouteTable.Routes.MapPageRoute("Profile", "{Link}.{Id}.aspx", "~/Profile.aspx");
榜样是有帮助的!
Link and Id is argument

请显示调用者和被调用者代码。您能查看错误是什么吗?调用者只是url:和被调用者ispublic void getcall(int a){}500错误通常表示您的方法引发了未捕获的异常。如果在调试器中运行Web API会发生什么?它在收到帖子时是否捕获任何异常。