我开始使用MVC4 Web API项目,我有一个带有多个HttpPost
方法的控制器。该控制器如下所示:
控制器
public class VTRoutingController : ApiController
{
[HttpPost]
public MyResult Route(MyRequestTemplate routingRequestTemplate)
{
return null;
}
[HttpPost]
public MyResult TSPRoute(MyRequestTemplate routingRequestTemplate)
{
return null;
}
}
这里的MyRequestTemplate
表示负责处理通过请求发送的JSON数据的模板类。
错误:
当我使用Fiddler进行请求http://localhost:52370/api/VTRouting/TSPRoute
或者http://localhost:52370/api/VTRouting/Route
时,出现了如下错误:
发现多个匹配该请求的操作
如果我删除上述方法中的一个,它就可以正常工作。
Global.asax
我尝试修改global.asax
中的默认路由表,但仍然出现错误,我认为我在定义全局路由时存在问题。以下是我在global.asax中所做的内容。
public static void RegisterRoutes(RouteCollection routes)
{
routes.MapHttpRoute(
name: "MyTSPRoute",
routeTemplate: "api/VTRouting/TSPRoute",
defaults: new { }
);
routes.MapHttpRoute(
name: "MyRoute",
routeTemplate: "api/VTRouting/Route",
defaults: new { action="Route" }
);
}
我正在使用Fiddler进行POST请求,在RequestBody中传递json作为MyRequestTemplate的参数。
命名空间 ImageDownloadApplication.Controllers { public class FrontModel { public string skus { get; set; } } [ActionName("ProductController")] public class ProductController : ApiController {
// GET: api/NewCotroller public IEnumerable Get()
{
return new string[] { "value1", "value2" };
}
- Umashankar