ASP MVC 5和Web Api 2无法在完整链接上查看页面

时间:2016-01-21 08:17:10

标签: c# asp.net-mvc routing

我有2个控制器,1个是MVC,1个是Web Api 2。 后者似乎工作正常,但只有当我写完整地址时,第一个才能显示HTML页面。 这是我简单的RouteConfig.cs routes.MapRoute(     名称:“默认”,         url:“{controller} / {action}”,         默认值:new {             controller =“Base”,             action =“Main”         }     ); ) 我们以默认为例,因此控制器是Base,action是Main,代码很简单 public ActionResult Main(){     return View(); } http:// localhost / miApps - >工作和显示/ View / Base / Main的内容 http:// localhost / miApps / Base - >工作和显示/ View / Base / Main的内容 http:// localhost / miApps / Base / Main - >不起作用,错误是   {“Message”:“找不到与请求URI匹配的HTTP资源'http:// localhost / miApps / Base / Main'。”,“MessageDetail”:“找不到与名为'Base'的控制器匹配的类型。 “} 我也发布了WebApiConfig.cs,也许还有互动? config.MapHttpAttributeRoutes();     config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue(“text / html”));     config.Routes.MapHttpRoute(         名称:“DefaultApi”,         routeTemplate:“{controller} / {action}”,         默认值:new {             // id = RouteParameter.Optional         }     ); }

1 个答案:

答案 0 :(得分:3)

API控制器的路由应该有一个前缀(通常是' / api /'),以便与普通控制器区分开来。

尝试将WebApiConfig.cs更新为:

config.MapHttpAttributeRoutes();
    config.Formatters.JsonFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/html"));
    config.Routes.MapHttpRoute(
        name: "DefaultApi",
        routeTemplate: "api/{controller}/{action}",
        defaults: new {
            //id = RouteParameter.Optional
        }
    );
}