7

我有这个代码:

@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,最新版本。

4

1 回答 1

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 }
);

注意 url 的第三部分,它被命名为blogid. 但是,如果您不想配置另一条路线,那么您可以将链接重写为:

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

注意id参数上的。

于 2013-04-10T02:39:39.460 回答