我已经使用 System.Net.WebClient 和 ASP.net MVC 3 网站进行了一些基本测试,我发现当绑定(bind)到操作的参数时,MVC 会自动解码已被配置的任何查询字符串参数。如果使用 GET,则进行 UrlEncoded。但它不会自动解码 POST 参数。是否有一个原因?似乎带来了不必要的不便。
最佳答案
ASP.NET MVC 默认模型绑定(bind)器使用 Request.Form
提供程序来读取 POST 值。该提供程序还会自动解码 url 编码的参数。
例如,如果您发送以下 POST 负载:
foo=%26&bar=%3D
在相应的 Controller 操作中,您将获得正确的值:
[HttpPost]
public ActionResult Test(string foo, string bar)
{
// foo equals &
// bar equals =
}
所以您可能没有正确对请求进行 url 编码。
关于asp.net-mvc - 为什么 ASP.net MVC 不自动解码 POST(又名表单)参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8541943/