【发布时间】:2012-06-30 08:36:35
【问题描述】:
我通过 $.ajax POST 将一个对象从 jQuery 传递到 MVC3 控制器。在使用开发人员工具进行调试时,我可以看到我分配给 ajax 数据属性的对象。该对象包含值为 null 的属性。当我调试控制器时,JS 调试器中为空的属性现在是“空”(字符串)。
这是为什么?我能做些什么来防止这种情况发生?
C# 对象
public class User
{
public string Name { get; set; }
}
Javascript 对象
var user = {
Name: null
}
控制器方法
public JsonResult HelloWorld(User user) { .. some logic .. }
ajax 调用
var data = user;
$.ajax({
url: '/Controller/HelloWorld/',
data: data,
type: 'post',
success: ...
error: ...
})
【问题讨论】:
-
能否展示相关代码(js和cs)?
-
我们没有做任何特别的事情。创建一个 c# 对象,创建一个匹配的 javascript 对象(将一些属性保留为空),然后使用 jQuery ajax 将该对象发布到控制器方法。该对象的属性为“null”,因此 Controller 方法中的逻辑无关紧要。
-
酷,你能在 JavaScript 中显示 如何 你在
POST中做到这一点吗? -
我已经为你更新了问题。
-
诚实的问题。您是否尝试过指定
contentType: 'application/json; charset=utf-8'? (不是 100% 确定它在这种情况下是否有帮助)
标签: asp.net-mvc