c# - 如何在 ASP.NET MVC 4 中将 View 和局部 View 返回到索引布局?

标签 c# asp.net-mvc-4 razor entity-framework-6 partial-views

我的家庭 Controller 和我的“StatusController”都创建了一个 DEBentities 的新实例。 Home Controller 将 _db.VMs ViewData.Model 返回到 _Layout.cshtml View ,Status Controller 将 _db.Jobs ViewDataModel 作为局部 View 返回到 _GetForStatus.cshtml View 。我将 VM ViewData 模型调用到 _Layout View ,如下所示:

 @foreach (var m in ViewData.Model)
      {
           <li><a href="#">@m.Name</a></li>
      }

这工作正常,使用数据库中的 VM 名称填充下拉列表。 _GetforStatus。 家庭 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 View 是这样写的:

 @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 View 中是这样调用的:\

 @Html.Partial("~/Views/_GetforStatus.cshtml")

我在这里遇到了一个错误。 “传入字典的模型项的类型为‘System.Collections.Generic.List’1[IntegrationWeb.models.VM]’,但字典需要模型项类型为‘IntegrationWeb.Models.Job’。 将两个不同的 DEBentities 拉入布局 View 似乎存在冲突。
如何在 ASP.NET MVC 4 中将 View 和局部 View 返回到索引布局?

更新:我只是将 Action 放在 Home Controller 中,因为我不明白为什么它找不到我的 Controller “StatusController”。现在我使用 @{Html.RenderAction("_GetforStatus");} 得到一个不同的错误“传递到字典中的模型项是类型'System.Collections.Generic.List'1 [IntegrationWeb.models.Job]',但是这本字典需要一个类型为‘IntegrationWeb.models.Job’的模型项。”有人知道这里发生了什么吗?

最佳答案

分部 View 从父 View 继承模型,除非您专门传递一个属性,或创建另一个对象传递给它。它们也处理相同的请求。因此,在您的示例中,局部 View 的 Controller 操作甚至没有被执行。您需要做的是使用 RenderAction。

@{ Html.RenderAction("_GetforStatus","ControllerName"); }

这将允许您使用自己的模型和单独的请求执行 View 。

关于c# - 如何在 ASP.NET MVC 4 中将 View 和局部 View 返回到索引布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28565584/

相关文章:

asp.net-mvc - 如何在knockout viewmodel js中使用mvc4模型值

c# - 如何发送带有html附件的邮件

javascript - 使用空白 MVC 路由和 HttpGet 请求 Controller

css - Bootstrap 文本框后的图标

javascript - 如何在 Razor 中使用 JavaScript 变量?

c# - 将多个元素放入 WPF 中的 GroupBox 中

c# - 通过套接字从浏览器发送数据到C#/Java

javascript while循环正确迭代但具有相同逻辑的for循环不是,在具有整数值和其中一些空值的数组上

c# - 如何在 MVC4 网站 : do I really need to expose my dev environment? 中集成和测试 PayPal

c# - Umbraco通过代码创建内容导致缓存失效