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

本文关键字:链接 MVC Web API ASP | 更新日期: 2023-09-27 18:31:13

我有 2 个控制器,1 个是 MVC,1 个是 Web API 2。后者似乎可以正常工作,但第一个只有在我写完整地址时才不能显示 HTML 页面。

这是我的简单RouteConfig.cs

routes.MapRoute(
    name: "Default",
        url: "{controller}/{action}",
        defaults: new {
            controller = "Base",
            action = "Main"
        }
    );
)

我们以默认值为例,所以控制器Base,动作Main,代码简单明了

public ActionResult Main() {
    return View();
}

http://localhost/miApps -->/视图/基本/主的工作和显示内容http://localhost/miApps/Base -->/视图/基本/主要的工作和显示内容http://localhost/miApps/Base/Main -->不起作用,错误是

{"消息":"未找到与请求 URI 'http://localhost/miApps/Base/Main'匹配的 HTTP 资源。","消息详细信息":"未找到与名为"Base"的控制器匹配的类型。


我也发帖WebApiConfig.cs,也许有互动?

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

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

到 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
        }
    );
}