Asp.net mvc 数据具有特殊符号时的URL路由问题

Asp.net mvc 数据具有特殊符号时的URL路由问题,asp.net-mvc,extjs,Asp.net Mvc,Extjs,我开发了一个ASP.NETMVC应用程序。我有一个名为EmployeeController的conroller,它有一个名为GetEmployeeByName的方法。GetEmployeeByName()将字符串类型的名称作为参数 因此,当我发送这样的请求时,我会返回数据: someDomain:9999/Employee/GetEmployeeByName/Roger Federer 但如果名称包含一个“&”(you&me),我将从服务器得到一个“400坏请求”作为响应 someDomain:

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

因此,当我发送这样的请求时,我会返回数据: someDomain:9999/Employee/GetEmployeeByName/Roger Federer

但如果名称包含一个“&”(you&me),我将从服务器得到一个“400坏请求”作为响应

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

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

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

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

正确的方法是使用查询字符串参数,而不是将这些内容作为uri部分的一部分。阅读斯科特·汉斯勒曼的文章。我只会引述居屋计划的结论:

经过所有这些努力,在请求路径中获得疯狂的东西,它是 值得一提的是,只需将这些值作为查询的一部分 字符串(还记得这篇文章开头的地方吗?), 更干净、更灵活、更安全


正如你在博客文章中看到的,有一些黑客方法可以让它工作并绕过IIS处理,但我不建议你冒险去做。只需在查询字符串中输入此名称。

Dimitov:谢谢您的回复。这个链接很有用,所以我投了赞成票。但由于我决定使用POST数据(因此数据在正文中发送,而不是在URL中传递)。我不是把它当作答案。谢谢你的快速回复。