0

我开发了一个 ASP.NET MVC 应用程序。我有一个名为 EmployeeController 的控制器,它有一个名为 GetEmployeeByName 的方法。GetEmployeeByName() 将字符串类型的名称作为参数。

所以当我发送这样的请求时,我会取回数据:someDomain:9999/Employee/GetEmployeeByName/Roger Federer

但如果名称包含“&”(你和我),我会收到“400 Bad Request”作为来自服务器的响应。

someDomain:9999/Employee/GetEmployeeByName/you%20&%20me

即使我对其进行编码,也不会得到回复 someDomain:9999/Employee/GetEmployeeByName/you%20&%20me

对此类(具有特殊字符的数据)数据进行编码的正确方法是什么?

4

1 回答 1

1

对此类(具有特殊字符的数据)数据进行编码的正确方法是什么?

正确的方法是使用查询字符串参数,而不是将这些内容作为 uri 部分的一部分。阅读following blog postScott Hansleman 的文章。我只会引用楼主的结论:

在为在请求路径中获得疯狂的东西所做的所有努力之后,值得一提的是,简单地将值保留为查询字符串的一部分(还记得本文开头的 WAY 吗?)更容易、更清洁、更灵活,而且更多安全的。

正如您在博客文章中看到的那样,有一些技巧可以让它工作并绕过 IIS 处理,但我不建议您冒险使用它。只需将此名称放在查询字符串中即可。

于 2013-01-30T10:59:16.287 回答