Результат ActionLink "http://localhost:5089/Article/GetArticlesByCategory?category=ASP.NET&categoryId=2". Я хочу показать этот тип ссылки" http://localhost:5089/Blog/ASP.NET". Что такое неправильный маршрут с именем "Article".
Маршруты:
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "index", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Article",
"Blog/{category}", //
new { controller = "Article", action = "GetArticlesByCategory", category = UrlParameter.Optional, categoryId = UrlParameter.Optional }
Ссылка:
@Html.ActionLink(k.Name, "GetArticlesByCategory", "Article",
new { category = k.Name, categoryId = k.CategoryId }, null)
решаемые
Параметр GetArticlesByCategory int categoryId изменен на >> строковую категорию и заменен кодами действий на новый параметр (строковая категория)
Маршруты заменены на:
routes.MapRoute(
"Category",
"Blog/{category}",
new { controller = "Article", action = "GetArticlesByCategory", category = UrlParameter.Optional }
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "index", id = UrlParameter.Optional } // Parameter defaults
);
ActionLink заменен на:
@Html.ActionLink(k.Name, "GetArticlesByCategory", "Article",
new { category = k.Name }, null)