【发布时间】:2011-08-10 17:19:41
【问题描述】:
我正在使用 ASP.NET MVC 和 C# 将对象(POCO 模型类)插入数据库。请求和响应由 JQuery AJAX 处理。
响应是显示对象数据的强类型局部视图。然后将部分视图中的 html 附加到网页。
对象类(Project 类)包含一个虚拟对象(Status 类),该对象具有更多应该返回的属性。
我遇到的问题是虚拟对象(状态)在由 AJAX 处理时返回为 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 处理时不返回 null?
【问题讨论】:
-
您是否尝试过明确设置项目类的状态属性?类似于: if (Request.IsAjaxRequest()) { var newProject = new Project { Status = new Status { StatusText = "Testing" } }; return PartialView("Project", newProject);只是为了确保它不是你的 _projectService.GetProjectByGuid(project.Guid);那不是设置吗?
-
刚刚注意到我忘记在 GetProjectByGuid 方法中“包含”虚拟状态!现在可以了。
-
太好了,您可以删除自己的问题吗?谢谢
标签: c# asp.net asp.net-mvc ajax