我只是在学习MVC并且正在尝试创建一个SEO页面标题,因此我发送了一个控制器的ID,还有搜索引擎优化的页面slug。
我想看Recipe / Details / 18 / foobar
但下面的代码返回
结果/名称/ 18?名称= foobar的
我认为我的自定义路线存在问题,但是从所有mt研究中我认为我正确地做到了。任何帮助表示赞赏。
_PartialView
<a href="@Url.Action("Details", "Recipe", new {id = Recipe.ID, name = Recipe.Slug}, null)">
RouteConfig
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
routes.MapRoute(
name: "Recipe",
url: "{controller}/{action}/{id}/{name}",
defaults: new {
controller = "Recipe",
action = "Details",
id = UrlParameter.Optional,
name = UrlParameter.Optional
}
);
控制器
public ActionResult Details(int id)
答案 0 :(得分:1)
您应该在默认路由之前添加自定义路由。它们按顺序处理,因此在您的情况下,mvc使用默认路由。
此致 米哈伊尔