Asp.net mvc 4 带有ID的Actionlink

Asp.net mvc 4 带有ID的Actionlink,asp.net-mvc-4,Asp.net Mvc 4,我有以下代码: @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上看到了这篇文章

我有以下代码:

@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。

我怀疑您没有为
Home/Blog/{BlogId}
配置路由。因此,如果您希望能够编写此代码(如代码中所示):

您需要有这样一条路线:

routes.MapRoute(
    name: "DefaultBlog",
    url: "{controller}/{action}/{blogid}",
    defaults: new { controller = "Home", action = "Blog", 
            blogid = UrlParameter.Optional }
);
请注意url的第三部分,名为
blogid
。但如果不想配置其他路由,则可以将链接重写为:

@Html.ActionLink("Back To Blog","Blog","Home", new { id = Model.BlogId}, null)

注意参数上的
id

同意
new{id=Model.BlogId}
。指定
id
可能会修复它。指定
id
“将”修复它,而不仅仅是“可能”;)是的-这起作用了:@Html.ActionLink(“回到博客”,“博客”,“主页”,新的{id=Model.BlogId},null)
@Html.ActionLink("Back To Blog","Blog","Home", new { id = Model.BlogId}, null)