Простой ASP.NET MVC Routing question - PullRequest
0 голосов
/ 26 мая 2010

В моем простом приложении MVC есть две страницы с двумя заданными маршрутами:

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

Мне нужно было загрузить страницу результатов только с идентификатором продукта, например: [MyDomain ....] / Results / 12345. Но также главная страница отправляет POST (используя JQuery) в контроллер результатов для обновлений по этому маршруту: [MyDomain ....] / Main / Update вместе с пакетом данных. Это прекрасно работает, когда у меня есть только маршрут по умолчанию. Но когда я добавил другой маршрут «Результаты», все вызовы POST для обновления перестали работать. Есть идеи, что я делаю не так ???

Большое спасибо.

1 Ответ

0 голосов
/ 26 мая 2010

Я не пробовал это, но должен выполнить то, что вам нужно. Не уверен, что может быть "лучший" способ сделать это.

routes.MapRoute(
  "Results", // Route name
  "Results/{id}", // URL with parameters
  new { controller = "Results", action = "Index", id = "" } // Parameter defaults
  new { id = @"\d+" } // regex for id param - id must be a number
);
routes.MapRoute(
  "Default", // Route name
  "{controller}/{action}/{id}", // URL with parameters
  new { controller = "Main", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
...