WebApi Route在Orchard模块中返回Not Found

我正在创建一个Orchard模块,我想添加一个WebApi控制器。

我的Module.txt:

Name: ModuleName AntiForgery: enabled Author: The Orchard Team Website: http://orchardproject.net Version: 1.0 OrchardVersion: 1.0 Description: Description for the module Features: ModuleName: Description: Description for feature ModuleName. 

我添加了ApiRoutes类:

 using Orchard.Mvc.Routes; using Orchard.WebApi.Routes; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; namespace ModuleName { public class ModuleNameApiRoutes : IHttpRouteProvider { public void GetRoutes(ICollection routes) { foreach (var routeDescriptor in GetRoutes()) { routes.Add(routeDescriptor); } } public IEnumerable GetRoutes() { return new[] { new HttpRouteDescriptor { Name = "ModuleName", Priority = 5, RouteTemplate = "api/modulename/{controller}/{id}", Defaults = new { area = "ModuleName", id = RouteParameter.Optional } } }; } } } 

然后我添加了一个apicontroller:

 using Newtonsoft.Json.Linq; using Orchard; using Orchard.Data; using ModuleName.Models; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using System.Web.Http; namespace ModuleName.Controllers { public class ConsumptionController : ApiController { public IOrchardServices Services { get; private set; } private readonly IRepository _repository; public ConsumptionController(IOrchardServices orchardServices,IRepository repository) { _repository = repository; } // GET: Home public HttpResponseMessage Get() { ... } } } 

我在Localhost上,主页是:

HTTP://本地主机:30321 / OrchardLocal

当我去

HTTP://本地主机:30321 / OrchardLocal / API /模块名/消费

我找到了一个N​​ot Found页面。

任何人都能解释一下吗?

您的GET方法没有参数ID。 可能就是这样

我今天早些时候有一个网络api电话。 结果改变了为我工作的链接。

我使用http:// localhost:30321 / Orchard.web / api / ModuleName /获取使用http:// localhost:30321 / api / ModuleName /获取我在使用Postman Chrome扩展程序进行测试时