Asp.net mvc 2 MVC2应用程序修改回发参数

Asp.net mvc 2 MVC2应用程序修改回发参数,asp.net-mvc-2,asp.net-mvc-routing,Asp.net Mvc 2,Asp.net Mvc Routing,我正在MVC2应用程序中构建博客引擎 每个帖子的URL都包含URL的标题。当标题带有问号时,问号会很自然地出现在URL中,但当请求到达控制器时,问号已被删除 这可能是某种安全措施,但在这种情况下,它会引发问题 有人能告诉我如何解决这个问题吗 URL的格式为 http://www.mydomain.com/posts/title-with-question-mark?/ 问号表示查询字符串的开始,它不是路径的一部分 您需要对其进行URL编码。这就是查询字符串的工作方式。这里没有查询字符串。我已经

我正在MVC2应用程序中构建博客引擎

每个帖子的URL都包含URL的标题。当标题带有问号时,问号会很自然地出现在URL中,但当请求到达控制器时,问号已被删除

这可能是某种安全措施,但在这种情况下,它会引发问题

有人能告诉我如何解决这个问题吗

URL的格式为

http://www.mydomain.com/posts/title-with-question-mark?/

问号表示查询字符串的开始,它不是路径的一部分


您需要对其进行URL编码。

这就是查询字符串的工作方式。这里没有查询字符串。我已经更新了帖子以显示URL的格式。我可以理解,在路由引擎看来,问号是一个空查询字符串的开始,但事实并非如此,难道没有办法包含问号吗?这涉及到一个查询字符串。。。你只是没有意识到。这就是问题所在。简短的回答是不。没有办法让你的url看起来像那样。问号是一个特殊的字符,不能用于其他任何东西。即使我用?;MVC在标记中将其更改为一个简单的文本“?”。好的,Server.UrlPathEncode无法识别,但我可以使用HttpUtility.UrlPathEncode()-事实上我已经在使用它了。不幸的是,在编码方面,这对问号没有任何影响。但是,我也尝试了HttpUtility.UrlEncode(),它确实对问号进行了编码,但是如果单击链接,我会得到“一个潜在危险的请求。从客户端检测到路径值(?)”。