2017-01-05 2 views
1

Я пытаюсь отправить рядом с C# контроллера:Config маршруты, чтобы установить метод после параметра

www.page.com/app/codes/10/status

Параметр 10 и status метод.

если я отправлю www.page.com/app/codes/status/10 статус до того, как параметр работает нормально, но не в другом.

Я пытался настроить маршруты, чтобы быть как

routes.MapRoute(
name: "codes", 
url: "{controller}/{id}/status", 
defaults: new { controller = "codes", action = "Status", id = UrlParameter.Optional } 
); 

и

routes.MapRoute(
name: "codes", 
url: "codes/{id}/status", 
defaults: new { controller = "codes", action = "Status", id = UrlParameter.Optional } 
); 

, но ни один из них не работает.

Любая идея? Благодарю.

+2

С '{id}' находясь посреди вашего маршрута, я не думаю, что он может быть дополнительным. Попробуйте удалить «UrlParameter.Optional». –

+1

Показать действие контроллера, а также, где вы настраиваете маршрут по отношению к другим маршрутам. – Nkosi

+1

Я нашел это для MVC 3 - [Как мой маршрут может использовать дополнительные параметры в середине URL-адреса с помощью ASP MVC3?] (Http://stackoverflow.com/questions/8314148/how-can-my-route- use-optional-parameters-in-the-middle-of-the-url-using-asp-mvc3) - возможно, в новой версии он улучшен, но, возможно, вам нужны два маршрута. – Kobi

ответ

3

Решение найдено благодаря @John @Nkosi и @Kobi

В основном от этого удалить id = UrlParameter.Optional

routes.MapRoute(
name: "codes", 
url: "{controller}/{id}/status", 
defaults: new { controller = "codes", action = "Status" } 
); 

также я переехал этот маршрут на первое место.

и его рабочий тон.

Смежные вопросы