ActionLink结果“http:// localhost:5089/Article/GetArticlesByCategory?category = ASP.NET & categoryId = 2”。我想显示链接类型“http:// localhost:5089/Blog/ASP.NET”。什么是错误的路线命名为“文章”。MVC 3路由问题
路线:
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参数整数的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)
自认倒霉的路线,但你的建议很好TY改变。 – ALKAN
控制器的名称和您需要用于此路线的操作的名称是什么? – Brettski
controller =“Article”and action =“GetArticlesByCategory” – ALKAN