Перегрузка метода с маршрутизацией
Я хотел бы закодировать две функции с одинаковым именем и разными параметрами в контроллере, как показано ниже.
[Route("Home/index")]
public JsonResult index()
{
return new JsonResult {Data = 'test1'};
}
[Route("Home/index/{id}")]
public JsonResult index(id)
{
return new JsonResult {Data = 'test2'};
}
Но я получил следующую ошибку с этим.
Текущий запрос на действие "index" для контроллера типа "HomeController" неоднозначен между следующими методами действия: System.Web.Mvc.JsonResult index() для типа application.Controllers.HomeController System.Web.Mvc.JsonResult index(int) по типу приложения. Контроллеры. HomeController
2 ответа
Как насчет чего-то, как вы можете определить несколько маршрутов
[Route("index")]
[Route("index/{id}")]
public JsonResult index(int id = null)
{
if(id.HasValue()){
return new JsonResult {Data = 'test2'};
}
return new JsonResult {Data = 'test1'};
}
Я нашел решение для этого. Код работает, но он должен вставить следующий код в RouteConfig.cs.
routes.MapMvcAttributeRoutes();