【发布时间】:2015-12-20 07:08:18
【问题描述】:
当我尝试使用 WebAPI2 放置数据时出现对象引用错误。我的班级结构是这样的
public class Student
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public Address address { get; set; }
}
public class Address
{
public int Id { get; set; }
public int StudentId { get; set; }
public string City { get; set; }
public string AddressLine { get; set; }
}
我的 Put 方法如下所示
public async Task putStudentProfile(Student student)
{
tblStudent std= db.tblStudent .FirstOrDefault(p => p.ID == student.Id);
std.NAME = student.Name;
std.EMAIL= student.Email;
tblAddress addr= db.tblAddress.FirstOrDefault(q => q.ID == student.Id);
addr.City= student.address.City;
await db.SaveChangesAsync();
}
使用邮递员发送 JSON 数据。我的JSON数据是这样的
{
"Id":59,
"Name": "Sandeep",
"Email": "xxxxxxxx@xxxx.com",
"address":{
"Id":42,
"StudentId": "59",
"City": "xxxxxx",
"AddressLine":"xxxxxxxxxxxxx"
}
}
当我尝试访问 student.address.City 时遇到对象引用错误
有办法解决这个问题吗?
【问题讨论】:
-
因为
student的address属性是null -
@StephenMuecke 感谢您的评论,我正在从邮递员那里发送数据。如何初始化学生的地址属性?有什么建议吗?
-
如果您正确发送数据,则
DefaultModelBinder将初始化并绑定address属性。您需要编辑您的问题,显示您如何将数据发送到控制器(然后我将重新打开问题) -
改成
"address.Id": 42、"address.StudentId": "59"等(去掉"address":{ ... }) -
@StephenMuecke 感谢您的支持。
标签: c# asp.net asp.net-mvc wcf asp.net-web-api2