2010-05-26 3 views
0

У меня есть две страницы в моем простом MVC приложение с двумя определенными маршрутами:Простой ASP.NET 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 
); 

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

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

ответ

0

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

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 
); 
+0

Это сработало !!! Большое спасибо за Вашу помощь. – Robert