在ASP.NET MVC5中,当使用Url.Action在Razor中生成标记时,如何隐藏Action名称?

时间:2015-04-19 11:14:25

标签: asp.net razor asp.net-mvc-5

正如标题所说。

我有一个路由设置并且工作正常,当没有指定时,它提供默认操作。我只想隐藏URL中的操作,因为它不必要的混乱。

设置" ActionName"参数null""只会导致当前页面的操作被替换 - 这不起作用。

我愿意使用@Html.ActionLink(),如果这样可以得到我所需要的。

我的路线定义是

routes.MapRoute(
    name: "MyBookRoute", 
    url: "Book/{id}", 
    defaults: new { controller = "Book", action = "Index" }
);

如果所有其他方法都失败了,我想我可以手动写出hrefs,但这对Razor来说应该不是一件难事。

有没有其他人遇到这个并知道该怎么做?

1 个答案:

答案 0 :(得分:2)

根据您的路线定义,然后

@Url.Action("Index", "Book", new { id = 1 })

@Html.ActionLink("Your link text", "Index", "Book", new { id = 1 }, null)

将从生成的网址中删除操作名称。