2015-05-19 8 views
5

Tworzę moduł Orchard, w którym chcę dodać kontroler WebApi.WebApi Route zwraca Nie znaleziono w module Orchard

My 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. 

dodałem klasę 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<RouteDescriptor> routes) 
     { 
      foreach (var routeDescriptor in GetRoutes()) 
      { 
       routes.Add(routeDescriptor); 
      } 
     } 

     public IEnumerable<RouteDescriptor> GetRoutes() 
     { 
      return new[] { 
       new HttpRouteDescriptor { 
        Name = "ModuleName", 
        Priority = 5, 
        RouteTemplate = "api/modulename/{controller}/{id}", 
        Defaults = new { 
         area = "ModuleName", 
         id = RouteParameter.Optional 
        } 
       } 
      }; 
     } 
    } 
} 

Potem został dodany 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<Vessel_ConsumptionPartRecord> _repository; 
     public ConsumptionController(IOrchardServices orchardServices,IRepository<Vessel_ConsumptionPartRecord> repository) 
     { 
      _repository = repository; 
     } 

     // GET: Home 
     public HttpResponseMessage Get() 
     { 

      ... 
     } 


    } 
} 

jestem na localhost i adres domowy to:

http://localhost:30321/OrchardLocal

Kiedy idę do

http://localhost:30321/OrchardLocal/api/ModuleName/Consumption

dostaję Nie znaleziono strony.

Czy ktoś może rzucić trochę światła?

Odpowiedz

2

Twoja metoda GET nie ma identyfikatora parametru. To może być to

+0

Nie można sobie wyobrazić, jak czuję, że brakuje dla. Dzięki za pomoc. –

+0

np. Dzieje się z najlepszymi z nas! – ErMasca

Powiązane problemy