2012-10-17 10 views
5

मैं पूरा यूआरएल प्राप्त करने की कोशिश कर रहा हूं लेकिन RouteUrl खाली लौट रहा है।Url.RouteUrl खाली लौटने

देखें में, मैं उस तरह बुला:

alert('@Url.RouteUrl("Api", new { controller = "Parametros", id = "" })'); 

यहाँ मेरी मार्गों विन्यास है:

public static void RegisterRoutes(RouteCollection routes) 
{ 
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

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

    routes.MapRoute(
     name: "Default", 
     url: "{controller}/{action}/{id}", 
     defaults: new { controller = "Usuario", 
      action = "Login", id = UrlParameter.Optional } 
    ); 
} 

और मेरे नियंत्रक:

public class ParametrosController : ApiController 
{ 
    ISistemaService _sistemaService; 
    public ParametrosController(Empresa empresa, ISistemaService sistemaService) 
    { 
     _sistemaService = sistemaService; 
    } 


    public PagedDataModel<ParametroDTO> Get(
     [FromUri]ParametroFiltro filter, int page, int pageSize) 
    { 
     int total = 0; 
     var list = _sistemaService.Paging(filter, page, pageSize, out total); 
     return new PagedDataModel<ParametroDTO>(page, pageSize, total, list); 
    } 

    public ParametroDTO Get(string codigo) 
    { 
     return _sistemaService.GetParametroPorCodigo(codigo); 
    } 
} 

उत्तर

10

करने के लिए httproute = "" जोड़े routeValues:

alert('@Url.RouteUrl("Api", 
    new { httproute = "", controller = "Parametros", id = "" })'); 
+0

ठीक है यह काम किया। बहुत कुछ है, लेकिन मुझे समझ में नहीं आया कि मुझे इस पैरामीटर की आवश्यकता क्यों है? – will

+0

आपको रूटिंग इंजन को इंगित करने के लिए इस पैरामीटर की आवश्यकता है जिसे आपको एपीआई रूट उत्पन्न करने की आवश्यकता है, न कि एक मानक एमवीसी मार्ग। –

+0

हम ... ठीक है .. टीटीएस। – will

संबंधित मुद्दे