ari*_*iel 0 javascript asp.net-mvc uri escaping url-routing
我正在使用javascript来实时请求服务器生成的图像.
该参数在url中传递并由MVC抓取,并在"id"参数中设置为控制器.像这样:
Public Function Index(ByVal id As String) As ActionResult
Run Code Online (Sandbox Code Playgroud)
如果我不使用任何特殊字符,如"?",这样可以正常工作 或引用.要发送我必须逃脱或编码此内容的人,但我该怎么做?
我试过javascript escape
或者encodeURIComponent
,但它或者给我"错误请求"或"路径中的非法字符"
一个示例网址http://localhost/Imagem/Index/Question%3F
,对于"问题?"
这会返回"错误请求"
您可能会发现此博客文章很有用.您将看到有解决方法,但使用风险自负.如果您使用的是.NET 4.0,请将其添加到您的web.config:
<system.web>
<httpRuntime
requestValidationMode="2.0"
requestPathInvalidCharacters="<,>,*,%,:,&,\"
relaxedUrlToFileSystemMapping="true"
/>
...
</system.web>
<system.webServer>
<security>
<requestFiltering allowDoubleEscaping="true" />
</security>
...
</system.webServer>
Run Code Online (Sandbox Code Playgroud)
就个人而言,我建议你避免在这样的网址中使用特殊字符.您可以使用映射函数将它们转换为其他字符,或者仅在查询字符串参数中使用它们:http://localhost/Imagem/Index?id=Question%3F