【发布时间】:2015-04-18 09:21:26
【问题描述】:
我的家庭控制器和我的“StatusController”都创建了一个 DBEntities 的新实例。 Home Controller 将 _db.VMs ViewData.Model 返回到 _Layout.cshtml 视图,而 Status Controller 将 _db.Jobs ViewDataModel 作为局部视图返回到 _GetForStatus.cshtml 视图。我将 VMs ViewData 模型称为 _Layout 视图,如下所示:
@foreach (var m in ViewData.Model)
{
<li><a href="#">@m.Name</a></li>
}
这很好用,用数据库中的虚拟机名称填充下拉列表。 _GetforStatus。 用于此的 Home Controller 部分是这样编写的:
public ActionResult index()
{
_db = new IntegrationDBEntitires();
ViewData.Model = _db.VMs.ToList();
return View();
}
StatusController 是这样写的:
public PartialViewResult _GetforStatus()
{
_db = new OntegrationDBEntities();
ViewData.Model = _db.Jobs.ToList();
return PartialView();
}
_GetforStatus 视图是这样写的:
@model IntegrationWeb.Models.Job
<div class="progress progress-striped active">
<div class="progress-bar" style="width: @((Model.IS_Progress / Model.IS_Total)*100)%"></div>
</div>
@Html.Action("_GetforStatus", "StatusController")
在 _Layout 视图中这样调用:\
@Html.Partial("~/Views/_GetforStatus.cshtml")
我在这里遇到错误。 “传入字典的模型项的类型为‘System.Collections.Generic.List’1[IntegrationWeb.models.VM]’,但字典需要模型项类型‘IntegrationWeb.Models.Job’。
将两个不同的 DBEntities 拉到布局视图中似乎存在冲突。
如何将视图和部分视图返回到 ASP.NET MVC 4 中的索引布局?
更新:我只是将 Action 放在 Home Controller 中,因为我不知道为什么它找不到我的 Controller“StatusController”。现在我使用 @{Html.RenderAction("_GetforStatus");} “传递到字典的模型项是类型'System.Collections.Generic.List'1 [IntegrationWeb.models.Job]',但是这个字典需要一个‘IntegrationWeb.models.Job’类型的模型项。”有人知道这里发生了什么吗?
【问题讨论】:
-
显示布局视图和主视图
-
partialView()是做什么的?这不是标准方法... -
我不确定你在问什么。我的理解是它返回部分视图。
-
MVC中没有叫partialView()的方法,有PartialView()...这只是一个错字吗?
-
是的,这是一个错字。我正在从另一台计算机重写。
标签: c# asp.net-mvc-4 razor entity-framework-6 partial-views