Я начинаю работу в asp.net mvc. Я пробую маршрут. но все форматы маршрутов, используя первое определенное значение маршрута. Пример всех просмотров url заканчивая «index», я не хочу этот формат url. и я хочу localhost:56609/Cuisines/Detail/4/thai
, но программа показывает localhost:56609/Cuisines/getCuisineDetail/6/thai
. Как это объяснить, пожалуйста.Asp.net MVC 4 Несколько маршрутов
RouteConfig
routes.MapRoute(_
name:="RestaurantDetail", _
url:="{controller}/{action}/{id}/{title}", _
defaults:=New With {.controller = "Restaurants", .action = "Index", .id = UrlParameter.Optional, .title = UrlParameter.Optional} _
)
routes.MapRoute(_
name:="Cuisines", _
url:="{controller}/Detail/{id}/{title}", _
defaults:=New With {.controller = "Cuisines", .action = "getCuisineDetail", .id = UrlParameter.Optional, .title = UrlParameter.Optional} _
)
routes.MapRoute(_
name:="Default", _
url:="{controller}/{action}", _
defaults:=New With {.controller = "Home", .action = "Index"} _
)
Посмотреть
@<p>@Html.ActionLink(Model(i).Name, "getCuisineDetail", New With {.id = Model(i).CusineID, .title = OnlineSiparis.UrlEditor.CheckUrl(Model(i).Name)}) </p>
Да, его работы благодарю вас. Но я не понимаю, почему маршрут кухни должен быть сначала – cptc
Поскольку «RestaurantDetail» также соответствует шаблону, указанному в маршруте «Кухни», и поставщик маршрутизации проверяет маршруты в порядке, первый, который отображается, «победит». Поэтому вам нужно сначала наметить маршрут «Кухни», если вы хотите, чтобы он соответствовал «{controller}/Detail/{id}/{title}" '(' @ Html.ActionLink (Model (i) .Name, " getCuisineDetail "использует тот же метод для создания ссылки). –