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