我的問題是當我嘗試使用兩個Html.RenderAction呈現視圖。它說:「操作無法完成,因爲DbContext已被處置」。MVC中的Html.RenderAction與EntityFramework
我Ninject這樣配置:
Bind<IUnitOfWork>().To<UnitOfWork>().InRequestScope;
,但如果我在默認的方式做...
Bind<IUnitOfWork>().To<UnitOfWork>()
沒有錯誤。
我必須在RequestScope中使用它(所以我認爲),但我該怎麼做呢?看起來,當第二個Html.RenderAction被稱爲之前的DbContext時,它已經被處理了!
更新:
這是(概括爲簡潔起見)
@model FoodAway.Model.Product
@Html.ValidationSummary(true)
<fieldset>
<legend>Producto</legend>
@using (Html.BeginForm())
{
<div class="editor-label">
@Html.LabelFor(model => model.Name)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
@Html.HiddenFor(model => model.Id)
<p>
<input type="submit" value="Guardar" />
</p>
}
<fieldset>
<div class="editor-label">
@Html.LabelFor(model => model.Ingredients)
</div>
<div class="editor-field">
@{Html.RenderAction("IngredientsToRemoveList", "Ingredients");}
</div>
</fieldset>
<fieldset>
@{Html.RenderAction("IngredientsToAddList", "Ingredients");}
</fieldset>
</fieldset>
和他的控制器/行動的主要觀點:
public ActionResult EditProduct(string name)
{
Product product = unitOfWork.ProductRepository.Get(i => i.Name ==name).FirstOrDefault();
if (product == null)
return HttpNotFound();
return View(product);
}
所以,在的DbContext的錯誤是,當我有這2個RenderAction方法,奇怪的是如果我只有1個RenderAction沒有問題!!!!!
使用.ToArray()你有沒有找到解決這個做到這一點?我遇到了同樣的問題。 – 2014-03-28 21:12:03