我已经看到 IIS 在让冒号进入 URL 方面存在问题。我也看到了其他人提供的建议here .
对于我正在开发的网站,我希望能够将电影、书籍等的标题传递到我的 URL 中,包括冒号,如下所示:
mysite.com/Movie/Bob:The Return
这将被我的
MovieController
使用,例如,作为字符串并在后面使用。我意识到冒号并不理想。有没有人有任何其他建议?尽管目前很糟糕,但我正在从所有冒号 (:) 到另一个字符进行查找和替换,然后当我想在 Controller 端使用它时进行反向替换。
最佳答案
我通过将其添加到我的 web.config 解决了这个问题:
<httpRuntime requestPathInvalidCharacters=""/>
这必须在 system.web 部分中。
默认值为:
<httpRuntime requestPathInvalidCharacters="<,>,*,%,&,:,\,?"/>
所以只为冒号做一个异常(exception),它会变成
<httpRuntime requestPathInvalidCharacters="<,>,*,%,&,\,?"/>
阅读更多:http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.requestpathinvalidcharacters.aspx
据我了解,冒号字符作为 URL 中的未编码字符是可以接受的。我不知道他们为什么将它添加到 requestPathInvalidCharacters 的默认值中。
关于asp.net-mvc - URL 中的 ASP.NET MVC 冒号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4694760/