Asp.net mvc 3 MVC3路由混乱
好的,我已经查看了MVC 3路由问题/答案的代表性示例,我回答了80%的问题。这是件好事,但现在最困难的部分仍未解决 在我的世界中,我有一个URL localhost/Location/Guid 根据我在默认路线之前输入的路线,效果非常好:Asp.net mvc 3 MVC3路由混乱,asp.net-mvc-3,routing,guid,Asp.net Mvc 3,Routing,Guid,好的,我已经查看了MVC 3路由问题/答案的代表性示例,我回答了80%的问题。这是件好事,但现在最困难的部分仍未解决 在我的世界中,我有一个URL localhost/Location/Guid 根据我在默认路线之前输入的路线,效果非常好: routes.MapRoute( "Location", "Location/{id}", new { controller = "Location", action = "Details", id = System.Guid.Emp
routes.MapRoute(
"Location",
"Location/{id}",
new { controller = "Location", action = "Details", id = System.Guid.Empty }
);
我可以传递我想要显示的位置的Guid,但这是右下角。我真的希望看到URL显示在地址栏中,并在页面中链接为:localhost/Location/Paris
显然,我可以将参数更改为字符串并在“Paris”中传递,但我不知道如何让数据库理解我想要的是法国巴黎,而不是德州巴黎,而不使用Guid
在这一点上,我真的需要一些帮助,不仅是为了解决我眼前的问题,也是为了更好地理解一般的路由。我以为我有足够的能力应付我的需要,但很明显,我没有
提前谢谢 您必须在URL中添加一些内容,以消除法国巴黎和德克萨斯州巴黎之间的歧义
/location/{locationSlug}
。如果您有多个名为“Paris”的位置,您可以对它们进行slagify并在末尾附加一个自动递增的#(例如,/Location/Paris、/Location/Paris-1、/Location/Paris-2)。或者您可以将地区/城市/国家信息添加到slug以消除歧义,而不是#李>
Location/{id}/{locationSlug}
(例如,/Location/1245/paris)李>
我从未想过在id之后添加一个无意义的描述符,很好。(是的,即使我使用这个网站)很多流行的网站都会在结尾添加内容。例如,维基百科和Yelp。