我有这个代码:
@Html.ActionLink("Back To Blog","Blog","Home", new {Model.BlogId}, null)
Run Code Online (Sandbox Code Playgroud)
该代码生成此HTML:
<a href="/Home/Blog?BlogId=1">Back To Blog</a>
Run Code Online (Sandbox Code Playgroud)
但我想要它生成的是:
<a href="/Home/Blog/1">Back To Blog</a>
Run Code Online (Sandbox Code Playgroud)
我该如何解决?
PS - 我在SO上看到这篇帖子似乎表明我正在以正确的方式做到这一点,但我没有得到我想要的结果.我正在使用MVC4,最新版本.
von*_* v. 11
我怀疑你没有配置路由Home/Blog/{BlogId}.所以,如果你想写这个(就像你在代码中显示的那样):
@Html.ActionLink("Back To Blog","Blog","Home", new { Model.BlogId}, null)
Run Code Online (Sandbox Code Playgroud)
你需要有这样的路线:
routes.MapRoute(
name: "DefaultBlog",
url: "{controller}/{action}/{blogid}",
defaults: new { controller = "Home", action = "Blog",
blogid = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)
注意名为url的第三部分blogid.但是,如果您不想配置其他路由,那么您只需将链接重写为:
@Html.ActionLink("Back To Blog","Blog","Home", new { id = Model.BlogId}, null)
Run Code Online (Sandbox Code Playgroud)
注意id参数.