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