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)