Как настроить URL-адреса RESTFul с использованием маршрутизации ASP.NET MVC? - PullRequest
3 голосов
/ 08 марта 2011

У меня есть этот URL:

/controller/action/value

и это действие:

public ActionResult Get(string configName,string addParams)
{
}

Как настроить таблицу маршрутизации для получения привязки механизма маршрутизациизначение параметра configName для любого действия в контроллере Config?

Ответы [ 3 ]

5 голосов
/ 08 марта 2011

Ну, во-первых, это неполно.У вас нет имени метода.

Во-вторых, он уже будет работать с URL-адресами в формате:

/ controller / action? ConfigName = foo & addparams = bar

Воткак это сделать с красивыми маршрутами:

routes.MapRoute(
      "YourMapping",                                            
      "{controller}/{action}/{configName}/{addParams}");

или

routes.MapRoute(
      "YourMapping",                                            
      "{controller}/{configName}/{addParams}",     
      new {
          controller = "YourController",
          action = "YourAction"
      },
      new {
          controller = "YourController"  // Constraint
      });

, если вы хотите исключить действие из URL.

3 голосов
/ 08 марта 2011

Вы можете добавить новый маршрут выше значения по умолчанию

routes.MapRoute(
  "Config", 
  "config/{action}/{configName}/{addParams}",
  new { controller = "Config", action = "Index" }
);

routes.MapRoute(
  "Default", // Route name
  "{controller}/{action}/{id}", // URL with parameters
  new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);

Что позволит вам использовать маршрут /config/actionName/configName/addParamsValue. Это не повлияет на другие ваши маршруты.

2 голосов
/ 08 марта 2011
routes.MapRoute(
      "ValueMapping",                                            
      "config/{action}/{configName}/{addParams}",          
      new { controller = "Config", action = "Index", configName= UrlParameter.Optional, addParams = UrlParameter.Optional }  // Parameter defaults);

Установка контроллера по умолчанию в Home с действием по умолчанию индекса

Итак, URL: /config/get/configNameValue/AddParamValue

будет соответствовать этому методу:

public ActionResult Get(string configName,string addParams)
{
//Do Stuff 
}
...