带ID的Html.Actionlink

Tod*_*vis 7 asp.net-mvc-4

我有这个代码:

@Html.ActionLink("Back To Blog","Blog","Home", new {Model.BlogId}, null)
Run Code Online (Sandbox Code Playgroud)

该代码生成此HTML:

<a href="/Home/Blog?BlogId=1">Back To Blog</a>
Run Code Online (Sandbox Code Playgroud)

但我想要它生成的是:

<a href="/Home/Blog/1">Back To Blog</a>
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

PS - 我在SO上看到这篇帖子似乎表明我正在以正确的方式做到这一点,但我没有得到我想要的结果.我正在使用MVC4,最新版本.

von*_* v. 11

我怀疑你没有配置路由Home/Blog/{BlogId}.所以,如果你想写这个(就像你在代码中显示的那样):

@Html.ActionLink("Back To Blog","Blog","Home", new { Model.BlogId}, null)
Run Code Online (Sandbox Code Playgroud)

你需要有这样的路线:

routes.MapRoute(
    name: "DefaultBlog",
    url: "{controller}/{action}/{blogid}",
    defaults: new { controller = "Home", action = "Blog", 
            blogid = UrlParameter.Optional }
);
Run Code Online (Sandbox Code Playgroud)

注意名为url的第三部分blogid.但是,如果您不想配置其他路由,那么您只需将链接重写为:

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

注意id参数.

  • 指定`id`**"将"**修复它而不只是**"可能"**;) (2认同)