Joe*_*gan 6 url asp.net-mvc routing colon
我已经看到IIS将冒号放入URL有问题.我也看到了其他人在这里提出的建议.
通过我正在处理的网站,我希望能够将电影,书籍等标题传递到我的网址,包含冒号,如下所示:
mysite.com/Movie/Bob:The Return
Run Code Online (Sandbox Code Playgroud)
MovieController例如,我将把它作为一个字符串消耗掉并在线下进一步使用.
我意识到结肠不理想.有没有人有任何其他建议?与目前一样糟糕,我正在从所有冒号(:)到另一个角色进行查找和替换,然后当我想在Controller端使用它时向后替换.
我通过将此添加到我的web.config来解决了这个问题:
<httpRuntime requestPathInvalidCharacters=""/>
Run Code Online (Sandbox Code Playgroud)
这必须在system.web部分中.
默认为:
<httpRuntime requestPathInvalidCharacters="<,>,*,%,&,:,\,?"/>
Run Code Online (Sandbox Code Playgroud)
因此,只有结肠才能成为例外
<httpRuntime requestPathInvalidCharacters="<,>,*,%,&,\,?"/>
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息,请访问:http://msdn.microsoft.com/en-us/library/system.web.configuration.httpruntimesection.requestpathinvalidcharacters.aspx
根据我的理解,冒号字符可以作为URL中未编码的字符.我不知道为什么他们将它添加到requestPathInvalidCharacters的默认值.
考虑对电影标题进行 URL 编码和解码。
你最终会得到foo.com/bar/Bob%58The%20Return
作为替代方案,请考虑利用HTML 帮助程序删除 URL 中的 URL 不友好字符(方法是URLFriendly())。冒号和占位符(例如破折号)之间的 SEO 好处可能可以忽略不计。
| 归档时间: |
|
| 查看次数: |
4242 次 |
| 最近记录: |