允许在MVC 3中加号

时间:2011-09-30 17:33:38

标签: asp.net-mvc asp.net-mvc-3 c#-4.0

我需要能够在控制器中为某些操作允许“+”符号。我正在构建一个允许这样的标签过滤引擎(即stackoverflow):/ Stuff / Tagged / tag-name-1 + tag-name-2 + other-tag

我知道我可以在web.config中设置allowDoubleEscaping="true",但出于安全原因,这不是最佳做法。

我猜在global.asax中有可能使用自定义文件管理器或其他注册表吗?

3 个答案:

答案 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", "+");