在AJAX调用时,需要正确设置contentType。例如,在使用jQuery的AJAX函数时,可以使用以下代码示例:
$.ajax({ type: "POST", url: "/Controller/Action", data: JSON.stringify(data), contentType: "application/json; charset=utf-8", dataType: "json", success: function (result) { //处理成功响应的逻辑 }, error: function (xhr, status, error) { //处理错误响应的逻辑 } });
在上述代码中,我们使用contentType为“application/json; charset=utf-8”,这是因为我们发送的是JSON格式的数据,并且我们希望使用utf-8编码进行传输。如果我们发送的是普通的表单数据,我们可以使用contentType为“application/x-www-form-urlencoded”,并在发送数据时使用jQuery的serialize()函数对数据进行序列化。
如果在MVC Action中仍然存在编码错误的问题,我们可以在Action中添加以下代码,以确保正确解析请求的内容:
[HttpPost] public ActionResult ActionName(string data) { //解析data字符串,在此处处理业务逻辑 return View(); }
在上述代码中,我们将请求内容作为字符串参数传递。对于普通的表单数据,可以将参数类型改为FormCollection。通过这种方式,我们可以保证请求内容得以正确解析。