我的阿贾克斯:
$.ajax({
url: '/Extensions/Sample',
type: 'GET',
async: false,
dataType: 'text',
processData: false,
//contentType: 'application/json; charset=utf-8',
data: "extension=" + JSON.stringify(newextension),
success: function (data) {
alert("Success");
}
}).error(function (jqXHR, textStatus, errorThrown) {
alert(jqXHR.status);
alert(jqXHR.responseText);
alert(errorThrown);
});
我的控制器:
public ActionResult Sample(Extension extension)
{
return PartialView(extension);
}
我的模特:
public class Extension
{
public int Id { get; set; }
public string Name { get; set; }
public string Number { get; set; }
}
我的杰森:
newextension = [{
'Name': 'User1',
'Number': '101'
},
{
'Name': 'User2',
'Number': '102'
},
{
'Name': 'User3',
'Number': '103'
}];
错误是未将对象引用设置为对象的实例。 哪里是错误,我该如何解决这个问题。 任何帮助..
答案 0 :(得分:0)
在您的模型中,删除类Id
中的Extension
属性或在JSON中添加Id
,因为返回的JSON和参数不匹配,因此您的对象是没有初始化。
更新:您发送的JSON是一个列表,因此我猜您需要使用List<Extension> extension
作为参数
答案 1 :(得分:0)
如果放置堆栈跟踪将会很有帮助。我在这里看到的一个问题是Sample的参数是Extension类型的对象,而json有这些对象的数组。我的猜测是,在这种情况下,extension参数将为null,这会导致NullReferenceException。
这可能是让签名看起来像这样:
public ActionResult Sample(Extension[] extension)
{
return PartialView(extension);
}
但是我不确定PartialView在收到数组时会是什么。