繁体   English   中英

MVC WebApi 路由未找到 HTTP 资源

[英]MVC WebApi Routing No HTTP resource was found

这是我第一次使用 MVC,我一直在努力让 webApi 路由工作。

我有一个简单的控制器,看起来像这样

namespace XRM.Controllers
{
    public class PipelinesWebApiController : ApiController
    {
        static List<XRM.Models.XRM_PipelineStages> stages = new List<Models.XRM_PipelineStages>
        {
            new Models.XRM_PipelineStages() { stageName = "test" },
            new Models.XRM_PipelineStages() { stageName = "test2" },
            new Models.XRM_PipelineStages() { stageName = "test3" }
        };

        public IEnumerable<XRM.Models.XRM_PipelineStages> Get()
        {
            return stages;
        }

        public XRM_PipelineStages Get(int id)
        {
            return stages.FirstOrDefault(s => s.ROWUID == id);
        }
    }
}

WebApiConfig:

namespace XRM {

    public static class WebApiConfig {
        public static void Register(HttpConfiguration config) {

            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
        }
    }

}

Global.asax.cs

namespace XRM {

    public class MvcApplication : HttpApplication {
        protected void Application_Start() {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            GlobalConfiguration.Configure(WebApiConfig.Register);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            DevExtremeBundleConfig.RegisterBundles(BundleTable.Bundles);
        }

    }
}

每当我尝试使用

http://localhost:58061/api/PipelinesWebApi

我收到错误消息:

未找到与请求 URI ' http://localhost:58061/api/PipelinesWebApi ' 匹配的 HTTP 资源。

我已经检查过我有config.MapHttpAttributeRoutes(); 在我的WebApiConfig.cs 中也是如此。

我真的不知道为什么我似乎无法达到它。

你的代码在我最后工作得很好。 我无法重现这个问题。 无论如何,您可以尝试另一种路由方式,如下所示:

更改routeTemplate"api/{controller}/{action}/{id}"WebApiConfig.cs并与像动作名称叫URL一起api/PipelinesWebApi/Get

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM