2015-05-19 12 views
5

Sto creando un modulo Orchard in cui aggiungere un controller WebApi.WebApi Ritorna percorso non trovato nel modulo Orchard

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

ho aggiunto una classe 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 
        } 
       } 
      }; 
     } 
    } 
} 

Poi ho aggiunto un 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() 
     { 

      ... 
     } 


    } 
} 

Sono su localhost e la l'URL di casa è:

http://localhost:30321/OrchardLocal

quando vado a

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

ottengo una pagina non trovata.

Qualcuno può far luce?

risposta

2

Il metodo GET non ha un ID parametro. Quello potrebbe essere

+0

Non potete immaginare come mi sento mancanti questo. Grazie per l'aiuto. –

+0

np, capita al meglio di noi! – ErMasca