Asp.net mvc 3 razor视图未显示导航属性值
我有以下行动方法:-Asp.net mvc 3 razor视图未显示导航属性值,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我有以下行动方法:- [HttpPost] public ActionResult Create(int questionid, Answer a) { if (ModelState.IsValid) { repository.AddAnswer(a); repository.Save(); return PartialView("_details"
[HttpPost]
public ActionResult Create(int questionid, Answer a)
{
if (ModelState.IsValid)
{
repository.AddAnswer(a);
repository.Save();
return PartialView("_details",a);
}
return View(a);
下面是详细的部分视图:-
@DisplayFor(modelItem=>Model.Description)
@DisplayFor(modelItem=>Model.Answer\u Description.Description)
@ActionLink(“删除”、“删除”、“回答”,
新的{id=Model.AnswersID},
新选择
{
确认=“是否确实要删除此答案?”,
HttpMethod=“Post”,
UpdateTargetId=Model.AnswersID.ToString()
})
我面临的问题是,
@Html.DisplayFor(modelItem=>Model.Answer\u Description.Description)
值在ajx调用后不会自动显示,除非我刷新网页。那么可能会有什么问题呢?我怀疑是延迟加载问题(你提供的信息很难确定,但是)
As Model.Description似乎是一个基本(字符串)属性,但Answer\u Description.Description是导航属性的基本属性
您确定正确加载了答案描述吗
编辑:更准确地说:您的操作将收到一个答案:当通过时,它是否具有答案\u Description.Description?
如果没有,您应该在返回视图之前从数据库中获取答案描述…谢谢您的回复,我不知道如何检查它是否成功加载,但如果我刷新页面,答案描述将成功显示…尝试:在控制器中放置调试点:进入“答案a”内部,并检查Model.Answer\u Description,以查看说明。如果它为空,或者在以这种方式调试时它是否工作,这是一个延迟加载问题,您应该在返回viewThank for r reply之前显式加载答案的说明,我通常使用该问题执行急切加载h对象或类似的senarios;但我可以确定如何在我的案例中应用Include?br我看到的原因是
UpdateTargetId
的值类似于modelname.answerid
,但实际上,答案描述的呈现id类似于Model.answer\u description.description
<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>