Url.Action生成查询字符串,任何方式生成完整的URL?

时间:2014-06-17 10:04:30

标签: asp.net-mvc razor

目前在我的项目中,我使用@ Url.Action在锚标签的href属性中创建链接。

例如:

<a href='@Url.Action("Index", "Home", new { id = 10 })' id="btn">Click</a>

这样可行,但生成的URL是......

/home/index?id=10

有没有办法返回网址

/home/index/10

用于搜索引擎优化和审美目的?我使用id和number作为占位符 - 在实际的应用程序中它可以使用字符串代替(所以...

<a href='@Url.Action("Index", "Home", new { name="test" })' id="btn">Click</a>

返回网址

/home/index/test

1 个答案:

答案 0 :(得分:3)

您需要确保路由正确。确保你有这样的路线:

routes.MapRoute(
    name: "Default",
    url: "{controller}/{action}/{id}",
    defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional });

对于您的真实应用程序&#39;,当您使用名为name的参数时,您将需要一个如下所示:

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