我需要能够在控制器中为某些操作允许“+”符号。我正在构建一个允许这样的标签过滤引擎(即stackoverflow):/ Stuff / Tagged / tag-name-1 + tag-name-2 + other-tag
我知道我可以在web.config中设置allowDoubleEscaping="true"
,但出于安全原因,这不是最佳做法。
我猜在global.asax中有可能使用自定义文件管理器或其他注册表吗?
答案 0 :(得分:3)
StackOverflow可能将+视为空格。他们很可能会映射路线/Stuff/Tagged/{*tags}
并在标签上调用string.split()
。如果你不在标签中允许空格,这实际上很有用。
答案 1 :(得分:0)
+
表示网址中的空格。你应该对它们进行URL编码:
/Stuff/Tagged/tag-name-1%2Btag-name-2%2Bother-tag
答案 2 :(得分:0)
您可以使用简单的替换:
string url = Url.Action("Index", "YourController");
url = url.Replace("%2b", "+");