Index.cshtml
<div class="news_content_container">
@Html.Action("_AddImagesToNews", "PostImages")
</div>
_AddImagesToNews.cshtml
<div>
@using (Html.BeginForm("_AddImagesToNews", "PostImages", FormMethod.Post, new { id = "form_post_images" }))
{
@Html.Hidden("Id", (int)ViewBag.newsId)
<div class="editor-label">
<input type="file" name="Files" id="Files" multiple="multiple" />
</div>
<div class="submit-field">
<input type="submit" value="Ekle" class="button_gray_small" />
</div>
}
</div>
<div class="images_content_container">
@Html.Partial("_PostImages", Model.ToList())
</div>
_PostImages.schtml
@model IEnumerable<NewsCMS.DAL.EDM.PostImages>
@foreach (var item in Model)
{
<img src="~/@(item.MiddleImageUrl)" alt="@(item.Posts.Title)" />
}
控制器操作
public ActionResult _AddImagesToNews(int Id)
{
using (NewsCMSEntities entity = new NewsCMSEntities())
{
ViewBag.newsId = Id;
return PartialView(entity.PostImages.Where(x => x.PostId == Id).ToList());
}
}
加载视图时,我会收到标题错误。我找不到原因。如果我在 _PostImages.cshtml 中编写@Model.Count()
,则会显示正确的值且没有错误。
我错过了什么?
...谢谢
答案 0 :(得分:2)
我想我明白了。试试这个
return PartialView(entity.PostImages.include("Posts").Where(x => x.PostId == Id).ToList());
答案 1 :(得分:1)
我解决了。我通过了以下模型。
var images = entity.PostImages.Where(x => x.PostId == Id).ToList();
return PartialView(images);
另外,感谢所有重播,尤其是@DaveA ......
我想,我总是应该这样使用。
答案 2 :(得分:0)
在视图中传递实体时,在范围完成时处理上下文
在视图中,您通过item.Posts.Title
访问对象,只能通过上下文访问。至于显示title
,有关Posts
的其他数据必须重新审核
使用Model.Count()
是正确的,因为在完成.ToList()之后不需要检索更多数据,并且可以在本地计算lis中的成员数
答案 3 :(得分:0)
这个问题通常是在缺少具体对象并且需要'.ToList()'时引起的,但在给定代码中并非如此。
如果您正在使用从布局或其他部分视图中的数据库检索的数据,请确保它们是具体对象(通过使用.ToList())。
您应该尝试使用IntelliTrace来查看抛出异常的确切位置(可能位于其他位置)。