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的笨蛋,这是一个更简单的错误版本.我建议关闭这个一个.

我回答了这个问题.

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....