карта маршрутизации не использует действие по умолчанию - PullRequest
0 голосов
/ 02 июня 2019

при вводе - http://localhost:60559/movies Браузер перенаправляет на фильмы / указатель Почему?Я сделал редактирование действий по умолчанию.Все имена просто демо.

routes.MapRoute(
  "searchByName",
  "Movies/edit",
  new {Controller = "Movies", action = "edit"}
);

действия:

public ActionResult index(int? id) {
   if(!id.HasValue)
      id = 2;
   return Content("id: " + id);
}
public ActionResult edit(int? id) {
   if (!id.HasValue)
     id = 1;
   return Content(String.Format("id =  {0}", id));
}

ожидаемый результат - id = 1 в браузере, но он показывает id: 2

1 Ответ

0 голосов
/ 02 июня 2019

Я попробовал ваш код, и он не работал должным образом, но, пожалуйста, попробуйте следующее, и ваш код должен нормально работать

        routes.MapRoute(
           name:"searchByName",
           url: "{controller}/{action}",
           defaults: new { Controller = "Movies", action = "edit" }
      );

, если вы планируете добавить параметры, используйте следующее

        routes.MapRoute(
           name:"searchByName",
           url: "{controller}/{action}/{id}",
           defaults: new { Controller = "Movies", action = "edit", id = UrlParameter.Optional }
      );

Пожалуйста, добавьте следующее

        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
               name: "SearchByName",
               url: "Movies/{action}",
           defaults: new { Controller = "Movies", action = "edit" }
           );

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
...