Asp.net mvc 你能用ActionLink生成友好的URL吗?

Asp.net mvc 你能用ActionLink生成友好的URL吗?,asp.net-mvc,asp.net-mvc-4,asp.net-mvc-routing,friendly-url,Asp.net Mvc,Asp.net Mvc 4,Asp.net Mvc Routing,Friendly Url,我使用ActionLinks创建了一个页面链接,例如: @Html.ActionLink(p.Name, "Details", new { URL = p.URL }) 这将生成如下URL: http://localhost/app/Home/Details?URL=the-cafe-name http://localhost/app/the-cafe-name 我想要这样的URL: http://localhost/app/Home/Details?URL=the-cafe-name

我使用ActionLinks创建了一个页面链接,例如:

@Html.ActionLink(p.Name, "Details", new { URL = p.URL })
这将生成如下URL:

http://localhost/app/Home/Details?URL=the-cafe-name
http://localhost/app/the-cafe-name
我想要这样的URL:

http://localhost/app/Home/Details?URL=the-cafe-name
http://localhost/app/the-cafe-name
URL是存储在每个位置的值

在这里使用ActionLink是最佳实践吗?如果是这样的话,我怎样才能让它生成友好的URL(除了包含ID的URL之外,它似乎是自动生成的?)


谢谢。

您可以添加这样的地图路线作为最后一条路线

        routes.MapRoute(
            name: "UrlFriendly",
            url: "{*url}",
            defaults: new { controller = "UrlFriendly", action = "Index" }
        );

如果你有一个复杂的网站,你将需要处理所有案件,这可能是一个巨大的工作量

是否将
url
配置为参数名称的路由?是。我可以键入我使用ActionLink创建页面链接-例如:@Html.ActionLink(p.Name,“Details”,new{URL=p.URL})这会生成这样的URL:我想要这样的URL:-在浏览器中-工作正常。我只是想知道是否应该使用ActionLink来呈现此URL?在路由配置文件中,路由定义是什么样子的?是否确实创建了一个需要
url
参数的新路由?你能粘贴你的路由配置文件中的代码吗?从未来开始-我现在使用属性路由-我推荐…你能解释一下这将如何处理OP想要的
url吗http://localhost/app/the-cafe-name
?您可以使用whildchar*来处理它,比如url:“app/{*url}”,这样,所有以“app/”将在将来由您的UrlFriendly控制器处理-我现在使用属性路由-这是我的建议。