我正在使用ASP.NET MVC和C#將對象(POCO模型類)插入到數據庫中。請求和響應由JQuery AJAX處理。ASP.NET MVC AJAX模型的虛擬對象爲空
響應是顯示對象數據的強類型局部視圖。然後將部分視圖中的html附加到網頁上。
對象類(Project類)包含一個虛擬對象(狀態類),它具有更多的屬性也應該返回。
我遇到的問題是,當由AJAX處理時,虛擬對象(Status)返回爲null。但是,如果我禁用AJAX,則回發將顯示正確的虛擬對象數據。
不知道它是否會幫助很大,但這裏是我的代碼的一部分。
控制器動作
public ActionResult AddProject(UpdateProjectModel model)
{
System.Guid guid = System.Guid.NewGuid();
var project = new Project
{
Guid = guid.ToString(),
JobNumber = model.JobNumber,
Title = model.Title,
Client = model.Client,
Details = model.Details,
StatusID = model.StatusID,
LastModified = DateTime.Now
};
_projectService.AddProject(project);
if (Request.IsAjaxRequest())
{
var newProject = _projectService.GetProjectByGuid(project.Guid);
return PartialView("Project", newProject);
}
else
{
return RedirectToAction("Index");
}
}
工程類
public class Project
{
[Key]
public int ProjectID { get; set; }
public string Guid { get; set; }
public string JobNumber { get; set; }
public string Title { get; set; }
public string Client { get; set; }
public string Details { get; set; }
public int StatusID { get; set; }
public DateTime LastModified { get; set; }
public virtual Status Status { get; set; }
}
狀態類
public class Status
{
[Key]
public int StatusID { get; set; }
public string StatusText { get; set; }
}
所以我的問題是如何我得到的項目狀態來無回空當AJAX處理?
您是否嘗試過明確設置Project類的狀態屬性?例如: if(Request.IsAjaxRequest()) var newProject = new Project {Status = new Status {StatusText =「Testing」}}; return PartialView(「Project」,newProject); } 只是爲了確保它不是你的_projectService.GetProjectByGuid(project.Guid); 那是不是設置它? – smoak
剛纔注意到我忘了在GetProjectByGuid方法中包含虛擬狀態!它現在有效。 – James
太棒了,你能刪除自己的問題嗎?謝謝 –