在/api/{controller}之前添加了C#webapi mvc控制器

在/api/{controller}之前添加了C#webapi mvc控制器,c#,asp.net-web-api,asp.net-mvc-routing,C#,Asp.net Web Api,Asp.net Mvc Routing,我制作了一个API控制器,并在其他文章中进行了建议的更改。(参考) 我觉得我已经接近解决方案了,但是我的页面仍然没有到达正确的控制器。当我使用F12工具时,我可以看到它在我的“/api/{controller}”之前添加了我的MVC控制器。很明显,我的路由仍然有问题,但我不知道如何修复它 TimeRegistrations是我的MVC控制器,api/WorkOrderAPI是我实际需要访问的控制器。路线应为/api/WorkOrderAPI。不过,url将用于以下内容: 请求的URL:/Time

我制作了一个API控制器,并在其他文章中进行了建议的更改。(参考)

我觉得我已经接近解决方案了,但是我的页面仍然没有到达正确的控制器。当我使用F12工具时,我可以看到它在我的“/api/{controller}”之前添加了我的MVC控制器。很明显,我的路由仍然有问题,但我不知道如何修复它

TimeRegistrations是我的MVC控制器,api/WorkOrderAPI是我实际需要访问的控制器。路线应为/api/WorkOrderAPI。不过,url将用于以下内容: 请求的URL:/TimeRegistrations/api/WorkOrderAPI

要获得我想要的页面,我来自:

localhost:1234/TimeRegistrations/Index
所需的表格已加载到页面上:

localhost:1234/TimeRegistrations/WorkOrderIndex
该表应在以下地址索取:

localhost:1234/api/WorkOrderAPI
在我的应用程序启动中,我有:

 protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "ActionApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "EmployeeInfo", action = "Index", id = UrlParameter.Optional }
        );
    }
在webApiConfig中,我有:

 protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "ActionApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "EmployeeInfo", action = "Index", id = UrlParameter.Optional }
        );
    }
在routeconfig中,我有:

 protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();
        GlobalConfiguration.Configure(WebApiConfig.Register);
        FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }
public static void Register(HttpConfiguration config)
    {
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "ActionApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );
    }
public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "EmployeeInfo", action = "Index", id = UrlParameter.Optional }
        );
    }
我的查看代码是:

function loadWorkOrders() {
    $.ajax({
        type: "GET",
        url: "api/WorkOrderAPI",
        success: function (data) {
            alert("Success");
            self.WorkOrders(data);
        },
        error: function (err) {
            alert(err.status + " from WorkOrderAPI");
        }
    });

提前谢谢

在AJAX调用中使用的是相对路由。试试这个

url: "/api/WorkOrderAPI",

TimeRegistrations是我的MVC控制器,api/WorkOrderAPI是我实际需要访问的控制器。-这没有多大意义。您是否有一个名为
WorkOrderAPIController
的控制器继承自
ApiController
?或者你正在尝试接触MVC控制器(即使你不能使用Web API)?我知道我已经接近了,你是对的,我忽略了这一点!谢谢