2013-02-23 44 views
0

Index.cshtmlObjectContext實例已被處置,不能再用於需要連接的操作?

<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它顯示正確的值,沒有錯誤。

我錯過了什麼?

謝謝...

+0

我注意到,子動作(後)_AddImagesToNews返回_PostImages部分。我從來沒有嘗試過,但聽起來很可疑。嘗試重命名後操作方法_PostImages – 2013-02-23 21:53:58

+0

請包括您的數據庫**操作部分** – 2013-02-23 22:02:42

+0

我很抱歉,我看到加載時發生錯誤,而不是發佈後。問題在於HttpGet方法。 – 2013-02-23 22:06:16

回答

2

我想我明白了。試試這個

return PartialView(entity.PostImages.include("Posts").Where(x => x.PostId == Id).ToList()); 
0

在作爲作用域完成
並在視圖要訪問經由item.Posts.Title一個對象,它只能通過上下文進行訪問的上下文被設置在視圖傳遞一個實體時。作爲顯示title有關Posts額外的數據將不得不使用Model.Count()是正確的,因爲它不需要.ToList()完成後檢索更多的數據retrived

,並可以在本地計算成員在LIS數

+0

感謝您的重播。我已經知道這一點,但我該如何解決? – 2013-02-23 21:57:38

0

當具體對象失蹤,這個問題通常是導致「.ToList()」是必需的,但在給定的代碼的情況並非如此。

如果您正在使用從佈局或其他部分視圖中的數據庫檢索的數據,請確保它們是具體對象(通過使用.ToList())。

您應該嘗試使用IntelliTrace查看引發異常的位置(可能位於其他位置)。

+0

但他正在使用tolist():( – 2013-02-23 22:20:41

1

我解決了它。我通過了如下模型。

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

而且,感謝所有錄像,特別是具有@DaveA ...

我想,我應該八方通用這種方式。

+1

不錯的工作........ – 2013-02-23 22:22:37

+2

我不知道它是如何造成這個問題的 據我所知'影像'的價值評估之前,它傳遞給視圖,所以ObjectContext在評估之後是不需要的 – 2013-02-23 22:24:41

+1

@Aviran,你說得對,我同意你的看法...... – 2013-02-23 22:26:00

相關問題