2011-08-10 9 views
0

ASP.NET MVCとC#を使用してオブジェクト(POCOモデルクラス)をデータベースに挿入しています。要求と応答はJQuery AJAXによって処理されます。ASP.NET MVC AJAXモデルの仮想オブジェクトがnullです

レスポンスは、オブジェクトデータを表示する強く型付けされた部分ビューです。部分ビューからのHTMLは、Webページに追加されます。

オブジェクトクラス(Projectクラス)には、返されるプロパティも多く含まれる仮想オブジェクト(Statusクラス)​​が含まれています。

私が抱えている問題は、仮想オブジェクト(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"); 
     } 
    } 

Projectクラス

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; } 
} 

だから私の質問は、私がnullを返さないためにプロジェクトステータスを取得する方法AJAXによって処理されたとき?

+0

ProjectクラスのStatusプロパティを明示的に設定しようとしましたか?何かのように: if(Request.IsAjaxRequest()) { var newProject = new Project {Status = new Status {StatusText = "Testing"}}}; return PartialView( "Project"、newProject); } あなたの_projectService.GetProjectByGuid(project.Guid)を確認してください。 設定していないのですか? – smoak

+0

ちょうど私はGetProjectByGuidメソッドの仮想ステータスを '含む'ことを忘れてしまいました!それは今働く。 – James

+0

あなた自身の質問を削除できますか?ありがとう –

答えて

1

私は、GetProjectByGuidメソッドに仮想ステータスを '含む'ことを忘れてしまいました。それは今働く。

+0

クール。あなたは問題を解決しました。これを「回答」としてマークして、この質問が未回答のリストに表示されないようにしてください。 :) –

関連する問題