2016-01-17 3 views
0

Я создал несколько маршрутов с различным именем маршрута в MVC.Конфигурация маршрута MVC: несколько маршрутов с различным именем маршрута

routes.MapRoute(
    name: "PostDetails", 
    url: "Ad/{id}/{item}", 
    defaults: new { controller = "Home", action = "Post" } 
); 

Я зову маршрут из яваскрипта функции перенаправления на этот маршрут

var url = '@Url.RouteUrl("PostDetails", new { id = "_id_", item = "_name_" })';  
url = url.replace("_id_", id).replace("_name_", name); 
window.location.href = url; 

Это дает ошибку с 404.

+0

Этот сценарий находится в представлении или во внешнем файле 'js'? –

+0

Что такое сгенерированный URL-адрес в html? – ramiramilu

+0

@StephenMuecke это как
функция postDetails (id, name) { var url = '@ Url.RouteUrl ("PostDetails", new {id = "_id_", item = "_name_"})'; url = url.replace ("_ id_", id) .replace ("_ name_", name); window.location.href = url; } –

ответ

1

Вы должны добавить свой маршрут, прежде чем маршрут по умолчанию в RouteConfig like:

public static void RegisterRoutes(RouteCollection routes) 
{ 
     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 
     routes.MapRoute(
      name: "PostDetails", 
      url: "Ad/{id}/{item}", 
      defaults: new { controller = "Home", action = "Post" } 
     ); 
     routes.MapRoute(
      name: "Default", 
      url: "{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } 
     ); 
} 
Смежные вопросы