2012-03-04 59 views
-1

我有以下動作的方法: - :即我是 剃刀視圖未顯示導航屬性值

<td> 
     @Html.DisplayFor(modelItem => Model.Description) 
    </td> 
    <td> 
     @Html.DisplayFor(modelItem => Model.Answer_Description.description) 
    </td> 
    <td> 
    @Ajax.ActionLink("Delete", "Delete", "Answer", 
    new { id = Model.AnswersID }, 
     new AjaxOptions 
     { 
      Confirm = "Are You sure You want to delete this Answer ?", 
      HttpMethod = "Post", 
      UpdateTargetId = Model.AnswersID.ToString() 
        }) 


    </td> 
    </tr> 

問題 -

[HttpPost] 
     public ActionResult Create(int questionid, Answer a) 
     { 
      if (ModelState.IsValid) 
      { 
     repository.AddAnswer(a); 
      repository.Save(); 
      return PartialView("_details",a); 
      } 
      return View(a); 

和folloiwng _details partila視圖面對的是,@Html.DisplayFor(modelItem => Model.Answer_Description.description)價值是不會自動顯示ajx調用後,除非我刷新網頁,所以可能是什麼問題?

+0

我看到的原因是'UpdateTargetId'具有類似於'modelname.answerid'的值,但實際上應答描述的呈現ID是類似'Model.Answer_Description.description' – Rafay 2012-03-04 17:55:51

回答

0

我會懷疑一個懶加載問題(很難確保用你給的相關信息,但)...

至於Model.Description似乎是一種原始(String)屬性,但Answer_Description.description是導航屬性的原始屬性。

是否確定Answer_Description正確加載?

編輯:更確切地說:您的操作收到答案:通過時是否具有Answer_Description.description? 如果不是,您應該在返回查看之前從數據庫中獲取Answer_Description ...

+0

感謝您的回覆,我不知道如何我可以檢查它是否成功加載,但如果我刷新頁面Answer_Description將顯示成功... – 2012-03-04 17:28:18

+0

使試一試:在你的控制器中放一個調試點:進入你的「答案一」,檢查Model.Answer_Description,看看說明。 如果它是空的,或者如果它工作,當你用這種方式調試時,這是一個懶加載問題,你應該明確加載Answer_Description爲您的答案,然後返回視圖 – 2012-03-04 17:33:09

+0

謝謝r回覆,我通常執行Eager加載通過使用。包括循環時通過對象或類似的senarios;但我可以確定如何將包含應用於我的情況? BR – 2012-03-04 18:44:17