0

索引.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());
    }
}

加载视图时,我收到错误作为标题。我找不到原因。如果我写@Model.Count()_PostImages.cshtml中,它会显示正确的值而没有错误。

我错过了什么?

谢谢...

4

4 回答 4

2

我想我明白了。试试这个

return PartialView(entity.PostImages.include("Posts").Where(x => x.PostId == Id).ToList());
于 2013-02-23T22:18:11.967 回答
1

我解决了。我通过了如下模型。

var images = entity.PostImages.Where(x => x.PostId == Id).ToList();
return PartialView(images);

另外,感谢所有重播,尤其是@DaveA ...

我想,我应该一直使用这种方式。

于 2013-02-23T22:20:55.123 回答
0

在视图中传递实体时,上下文在范围完成时被释放
,并且在视图中您正在访问一个item.Posts.Title只能通过上下文访问的对象。至于显示title有关的附加数据Posts将不得不被检索

usingModel.Count()是正确的,因为它不需要在 .ToList() 完成后检索更多数据,并且可以在本地计算 lis 中的成员数

于 2013-02-23T21:54:08.437 回答
0

此问题通常是在缺少具体对象并且需要“.ToList()”时引起的,但在给定的代码中并非如此。

如果您在 Layout 或其他部分视图中使用从数据库检索的数据,请确保它们是具体对象(通过使用 .ToList())。

您应该尝试使用 IntelliTrace 来查看引发异常的确切位置(它可能在其他地方)。

于 2013-02-23T22:19:04.390 回答