[英]Insertion in mvc project error: {“Object reference not set to an instance of an object.”}
我在MVC中工作,我想保存详细信息..这里我有一个错误..控制器
public ActionResult Edit(FormCollection frm)
{
StaffDetails sdtl=new StaffDetails();
int UnvId = int.Parse(TempData["UnvID1"].ToString());
sdtl.UnvId = UnvId;
//sdtl.UnvId = int.Parse(TempData["UnvID"].ToString());
string SportsName = frm["SportsAffliation"];
var SpotsID = Db.SportsCodes.Where(s => s.SportsName == SportsName).FirstOrDefault();
sdtl.SportsID = SpotsID.SportsCodeID;
sdtl.Name = frm["name"];
sdtl.Address.Street = frm["street"];
sdtl.Address.City = frm["city"];
sdtl.Address.State = frm["state"];
sdtl.Address.PostalCode = frm["zip"];
sdtl.Address.Country = frm["country"];
sdtl.Email = frm["Email"];
sdtl.Phone = frm["Phone"];
sdtl.SportsAffliation = frm["SportsAffliation"];
Db.Entry(sdtl).State = System.Data.Entity.EntityState.Modified;
Db.SaveChanges();
//return RedirectToAction("Edit", new { id = cohid, tab = 0 });
return View();
}
域
public class StaffDetails
{
[Key]
public int StaffId { get; set; }
public int UnvId { get; set; }
public University University { get; set; }
public int SportsID { get; set; }
public SportsCode SportsCode { get; set; }
public int SportsGroupId { get; set; }
public SportsGroup SportsGroup { get; set; }
public int CoachingStaffId { get; set; }
public CoachingStaff CoachingStaff { get; set; }
public string Name { get; set; }
public string SportsAffliation { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string OrganizationalLeader { get; set; }
public Address Address { get; set; }
}
从控制器的下面一行错误..仅来自sdtl.address的错误...
sdtl.Address.Street = frm["street"];
sdtl.Address.City = frm["city"];
sdtl.Address.State = frm["state"];
sdtl.Address.PostalCode = frm["zip"];
sdtl.Address.Country = frm["country"];
错误是{“对象引用未设置为对象的实例。”}
我认为这是一个逻辑问题,但由于我是mvc的新手而无法找到..你能解决这个问题吗
您可以在构造函数中新建地址对象:
public StaffDetails()
{
Address = new Address();
}
或在控制器的“编辑”操作中添加新地址。
public ActionResult Edit(FormCollection frm)
{
StaffDetails sdtl=new StaffDetails() { Address = new Address() };
// Rest of code
}
这种方式意味着您每次使用StaffDetails时都必须重新创建Address对象。
在您的类中添加一个构造函数并初始化Address
属性:
public StaffDetails()
{
Address = new Address();
}
我认为您应该为StaffDetails构造一个。 在构造函数中,您应该初始化诸如地址之类的对象。 我的意思是当您使用StaffDetails sdtl=new StaffDetails();
此行将创建一个StaffDetails对象,但sdtl中的Address
对象仍为null。
您应该从承包商StaffDetails中的Address创建新实例:
public class StaffDetails
{
public StaffDetails()
{
this.Address = new Address();
}
[Key]
public int StaffId { get; set; }
public int UnvId { get; set; }
public University University { get; set; }
public int SportsID { get; set; }
public SportsCode SportsCode { get; set; }
public int SportsGroupId { get; set; }
public SportsGroup SportsGroup { get; set; }
public int CoachingStaffId { get; set; }
public CoachingStaff CoachingStaff { get; set; }
public string Name { get; set; }
public string SportsAffliation { get; set; }
public string Email { get; set; }
public string Phone { get; set; }
public string OrganizationalLeader { get; set; }
public Address Address { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.