关于asp.net mvc:Url.Action产生querystring,有什么办法产生完整的url?

Url.Action produces querystring, any way to produce full url?

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

例如:

1
Click

这样做很好,但是生成的URL是...

1
/home/index?id=10

有没有办法返回网址

1
/home/index/10

用于SEO和美学目的? 我使用ID和数字作为占位符-在实际应用中,它可以并且将使用字符串代替(因此...

1
Click

返回网址

1
/home/index/test


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

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

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

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