我有一段时间的困惑,这是因为以下原因:
我正在尝试发送一个jquery对象
var myObject = {
Title: $('#Title').val(),
Title2: $('#Title2').val(),
Title3: $('#Title3').val(),
};
通过ajax调用
$.ajax({
data: { myObjectName = myObject
},
datatype: "json",
url: "myUrl",
cache: false,
error: function (ts)
{//handle error},
success: function (result)
{//handle success}
});
我在控制器中收到我的对象:
public ActionResult MyAction(ObjectType myObjectName)
然而,当从javascript接收对象时,它不会识别它并且只是实例化一个新的ObjectType。
我知道我可以将它作为一个字符串发送,如果我将我的对象放在一个表单中,则将其序列化等等...我想知道的是为什么这种方法似乎对我有用(我已经让它工作了)与其他ObjectType(s))和在其他情况下,它没有。它与对象的复杂程度有关吗?发送不完整的对象? (后者似乎不是它,因为我发送'不完整'对象,空字段只是用null实例化)
任何见解都将受到赞赏。谢谢!
答案 0 :(得分:1)
将您的代码更改为;
$.ajax({
data: myObject,
datatype: "application/json",
type: "POST",
url: "myUrl",
cache: false,
error: function (ts)
{//handle error},
success: function (result)
{//handle success}
});
请注意,该类型是POST,这意味着您还需要将[HttpPost]
添加到您的ActioResult。
只要ObjectType
是包含字段
public class ObjectType
{
public string Title { get; set; }
public string Title2 { get; set; }
public string Title3 { get; set; }
}
您当前的代码正试图将您的模型绑定到类似
的内容public class SomeObject
{
ObjectType myObjectName { get; set; }
}
public class ObjectType{
public string Title { get; set; }
public string Title2 { get; set; }
public string Title3 { get; set; }
}