与模型中新 属性 的关系
Relationship with new property in model
我添加了一个新的属性
public List<string> DeclinedMembers { get; set; }
我删除了我的数据库并重新初始化了它。但是当尝试向控制器中的列表添加一些东西时,我不断在 DeclinedMembers 行抛出此异常。
System.NullReferenceException: 'Object reference not set to an instance of an object.'
Scheduler.Models.Event.DeclinedMembers.get returned null.
为什么找不到这个新的 属性?我错过了一步吗?
型号和控制器见下文
型号:
public class Event
{
[Required]
public int EventId { get; set; }
[ForeignKey("UserId")]
public virtual SchedulerUser SchedulerUser { get; set; }
[MaxLength(50)]
public string EventCreator { get; set; }
public List<string> EventMembers { get; set; }
public List<string> DeclinedMembers { get; set; }
[Required]
[MaxLength(100)]
public string Subject { get; set; }
[MaxLength(400)]
public string Description { get; set; }
[Required]
public DateTime StartTime { get; set; }
public DateTime? EndTime { get; set; }
[Required]
public bool IsFullDay { get; set; }
[Required]
public bool AcceptOrDecline { get; set; }
}
控制器(创建):
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("EventId,UserId,EventCreator,EventMembers,DeclinedMembers,Subject,Description,StartTime,EndTime,IsFullDay,AcceptOrDecline")] Event @event)
{
if (ModelState.IsValid)
{
@event.SchedulerUser = await _userManager.GetUserAsync(HttpContext.User); //This also sets the UserId for the event.
var userName = @event.SchedulerUser.UserName;
@event.EventCreator = userName;
@event.AcceptOrDecline = true;
@event.DeclinedMembers.Add("foo");
_context.Add(@event);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(@event);
}
试试这个:
if( @event.DeclinedMembers==null) @event.DeclinedMembers=new List<string>();
@event.DeclinedMembers.Add("foo");
我添加了一个新的属性
public List<string> DeclinedMembers { get; set; }
我删除了我的数据库并重新初始化了它。但是当尝试向控制器中的列表添加一些东西时,我不断在 DeclinedMembers 行抛出此异常。
System.NullReferenceException: 'Object reference not set to an instance of an object.'
Scheduler.Models.Event.DeclinedMembers.get returned null.
为什么找不到这个新的 属性?我错过了一步吗? 型号和控制器见下文
型号:
public class Event
{
[Required]
public int EventId { get; set; }
[ForeignKey("UserId")]
public virtual SchedulerUser SchedulerUser { get; set; }
[MaxLength(50)]
public string EventCreator { get; set; }
public List<string> EventMembers { get; set; }
public List<string> DeclinedMembers { get; set; }
[Required]
[MaxLength(100)]
public string Subject { get; set; }
[MaxLength(400)]
public string Description { get; set; }
[Required]
public DateTime StartTime { get; set; }
public DateTime? EndTime { get; set; }
[Required]
public bool IsFullDay { get; set; }
[Required]
public bool AcceptOrDecline { get; set; }
}
控制器(创建):
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("EventId,UserId,EventCreator,EventMembers,DeclinedMembers,Subject,Description,StartTime,EndTime,IsFullDay,AcceptOrDecline")] Event @event)
{
if (ModelState.IsValid)
{
@event.SchedulerUser = await _userManager.GetUserAsync(HttpContext.User); //This also sets the UserId for the event.
var userName = @event.SchedulerUser.UserName;
@event.EventCreator = userName;
@event.AcceptOrDecline = true;
@event.DeclinedMembers.Add("foo");
_context.Add(@event);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(@event);
}
试试这个:
if( @event.DeclinedMembers==null) @event.DeclinedMembers=new List<string>();
@event.DeclinedMembers.Add("foo");