微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

asp.net-mvc – 失败的ASP.NET MVC路由.这是一个错误还是角落?

我有一个ASP.NET MVC 3应用程序,用户可以发布建议沿着“bla bla会更好,如果yada yada yada”.
对于建议细节页面,我已经定义了一个很好的SEO友好路线如下:
routes.MapRoute(null,"suggestion/{id}/{it}/would-be-better-if-{if}",new { controller = "suggestion",action = "details" });

正如你所看到的,我想要修复“会更好的”部分.

这条路线适用于任何旧的建议,并生成链接,如建议/ 5 /本站/将来更好的如果它有一个iphone应用程序,并且点击链接实际上请求相应的详细信息页面.

我的一个朋友,讽刺的是一个测试者,已经设法不经意地发布了一个实际打破路线的建议:“如果”中间总是对齐,这个网站会更好“.
为此建议生成链接
/建议/ 84 /本网站/想成为,更好,如果-想成为,如果此结果总是神韵: – 在最中间.

我已经尝试了Phil Haack’s Routing Debugger,并确认该路线实际上会起作用,直到建议/ 84 /本站/将会更好 – 如果是更好 – 如果 – 因此,第二个“将会更好 – 如果“实际上被接受了;添加任何事情之后,实际上会导致url不匹配任何路由(感谢Omar -see的意见 – 寻求帮助).

请记住,我真的不想改变路线定义,因为我认为这是很好的,我可以管理这种情况下,SEO明智.

那么如何使文本等于路由的固定部分阻止链路匹配路由?为什么路线破裂?

我实际上对于为什么更感兴趣,因为我相信理解为什么会导致一个解决方案,或至少对一个相当有趣的问题的正确理解.

解决方法

这看起来像是一个 ASP.NET routing: Literal sub-segment between tokens,and route values with a character from the literal sub-segment的笨蛋,这是一个更简单的错误版本.我建议关闭这个一个.

我回答了这个问题.

原文地址:https://www.jb51.cc/aspnet/250051.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐