所以我正在尝试更新模型。这是我的模型的设置方式:
public class Event{
public int Id {get;set;}
public string Name {get;set;}
public DateTime Date {get;set;}
public int Organizerid {get;set;}
public virtual User Organizer {get;set;}
}
public class Organizer{
public int Id {get;set;}
public string Name {get;set;}
pubilc virtual iCollection<Event> Events {get;set;}
}
现在我为事件创建了一个 ViewModel (EventViewModel),因为每当我返回常规事件时,它都会在我身上抛出一个循环错误,我必须在我拉起的每个模型上的每个虚拟机上使用 [JsonIgnore]。此外,它还可以防止 web api 返回有关当前模型的过多信息。不需要的信息。
我的视图模型
public class EventVM {
public string Name {get;set;}
public DateTime Date {get;set;}
}
话虽如此,这就是我处理 PUT 的方式
[HttpPut]
public HttpResponseMessage Put(int eventId, EventVM event)
{
if (ModelState.IsValid && eventId== event.Id)
{
try
{
Event upEvent = dbcontext.Event.FirstOrDefault(e => e.Id == eventId);
upEvent.Name = eventVM.Name;
upEvent.Date = eventVM.Date;
dbcontext.SaveChanges();
return Request.CreateResponse(HttpStatusCode.OK);
}catch(Exception ex){
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
else
{
return Request.CreateResponse(HttpStatusCode.BadRequest);
}
}
我的问题是它没有保存更新。我会做一个 TryUpdateModel 但它似乎不能与 WebApi 一起使用。帮助!想法?