WebAPI和MVC之间的路由冲突

时间:2014-05-15 13:32:07

标签: asp.net-mvc asp.net-web-api

只有在我部署(不在iis express上的开发模式下)时,我才会在webAPI和MVC路由之间出现路由冲突。 MVC路由是我想要的路由,但是我没有看到WebAPI路由是如何可行的。我的下面的代码是我在WebAPIConfig中的代码,对我而言,这意味着那里没有/ Home路由。

我刚刚更新到MVC5和最新的WebAPI。我以前没有这个问题。

public static void Register(HttpConfiguration config)
{
 config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new IsoDateTimeConverter());

 config.Routes.MapHttpRoute
    ("API Default", "api/{controller}/{id}",
        new { id = RouteParameter.Optional });

 config.Routes.MapHttpRoute
    ("API Default Rest", "rest/{controller}/{urlPart}",
    new
    {
        urlPart = RouteParameter.Optional
    });

 config.Routes.MapHttpRoute
    ("API Default RPC", "rpc/{controller}/{action}/{urlPart}",
    new
    {
        urlPart = RouteParameter.Optional
    });

ERROR:

发现多个类型与名为“Home”的控制器匹配。如果为此请求提供服务的路由('{controller} / {action} / {id}')未指定名称空间来搜索与请求匹配的控制器,则会发生这种情况。如果是这种情况,请通过调用带有'namespaces'参数的'MapRoute'方法的重载来注册此路由。对'Home'的请求找到了以下匹配的控制器:WebAPI.Controllers.HomeController WebApplication3.Controllers.HomeController

'Home'的请求找到了以下匹配的控制器: WebAPI.Controllers.HomeController WebApplication3.Controllers.HomeController

0 个答案:

没有答案