我正在发送一个参数,从Javascript到.NET。该参数可能包含多个空格,如'John [此处为3个空格,stackoverflow未显示它们] Smith',我需要留下空格。但是,看起来这些空格在.NET中消失了。为了解决这个问题,我确保在客户端对URI进行编码,并在服务器端对其进行解码。代码(在VB.NET中)看起来像这样:
<AjaxPro.AjaxMethod()> _
Public Function GetSearch(ByVal strValue As String) As String
strValue = HttpUtility.UrlDecode(strValue)
...
End Function
在UrlDecode
之前,strValue
看起来像John%20%20%20Smith
'。之后它看起来像John Smith
。有谁能告诉我如何解决这个问题?
我正在使用.NET 2.0 Web窗体。
编辑:根据以下建议之一,我用(&符号)替换了所有空格。我在调试时可以看到所有空格,但是,我的数据库是SQL服务器,由于某种原因它会将常规空间视为不同于(&符号)nbsp;空格,因此查询不返回正确的值。我花了一些时间才弄清楚这一点,因为我无法用肉眼看出它的差异。
答案 0 :(得分:0)
好的,我能够通过用非中断空格替换所有空格来解决前端问题。然后我不得不用我的SQL存储过程中的常规空格替换非中断空格(否则查询将无效)。