【发布时间】:2008-10-27 15:08:55
【问题描述】:
在我的网络应用程序中,我的参数可以包含各种疯狂的字符(俄语字符、斜杠、空格等),因此不能总是在 URL 中按原样表示。
在大约 50% 的情况下,让他们以愉快的方式送他们去。像空格这样的东西已经在某处编码(我猜是在 Html.BuildUrlFromExpression 中)。其他的东西(比如“/”和“*”)不是。
现在我不知道该怎么做了,因为如果我自己编码它们,我的编码将再次部分编码并最终出错。如果我不对其进行编码,某些字符将无法通过。
我所做的是手动 .replace() 我遇到问题的字符。
这当然不是一个好主意。
想法?
--编辑--
我知道有许多编码/解码库可供我使用。
看起来 mvc 框架已经在尝试为我做这件事,但并不完全。
<a href="<%=Html.BuildUrlFromExpression<SearchController>(c=>c.Search("", 1, "a \v/&irdStr*ng"))%>" title="my hat's awesome!">
会渲染我
<a href="/Search.mvc/en/Search/1/a%20%5Cv/&irdStr*ng" title="my hat's awesome!">
注意正斜杠、星号和 & 号是如何不被转义的。 为什么有的逃了,有的逃了?我现在怎样才能正确地逃脱呢?
我做错了什么还是框架?
【问题讨论】:
标签: c# asp.net-mvc encoding