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 /模块名/消费
我找到了一个Not Found页面。
任何人都能解释一下吗?
您的GET方法没有参数ID。 可能就是这样
我今天早些时候有一个网络api电话。 结果改变了为我工作的链接。
我使用http:// localhost:30321 / Orchard.web / api / ModuleName /获取使用http:// localhost:30321 / api / ModuleName /获取我在使用Postman Chrome扩展程序进行测试时