Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 4 MVC-在一个视图中显示多个控制器结果_Asp.net Mvc 4 - Fatal编程技术网

Asp.net mvc 4 MVC-在一个视图中显示多个控制器结果

Asp.net mvc 4 MVC-在一个视图中显示多个控制器结果,asp.net-mvc-4,Asp.net Mvc 4,我的MVC系统中有一个控制器,它有以下几种方法: public ActionResult _GetServiceStatus() { ... } public ActionResult _GetEventLogErrors() { ... } 这些方法中的每一个都引用了我分别存储在模型、服务和事件中的不同类类型。这些可以在下面看到: public class Service { public string Name { get; set; } publ

我的MVC系统中有一个控制器,它有以下几种方法:

public ActionResult _GetServiceStatus()
{
...
}

public ActionResult _GetEventLogErrors()
{
...
}
这些方法中的每一个都引用了我分别存储在模型、服务和事件中的不同类类型。这些可以在下面看到:

public class Service
    {
        public string Name { get; set; }
        public string Status { get; set; }
    }

    public class Event
    {
        public string Source { get; set; }
        public string EntryType { get; set; }
        public string Message { get; set; }
        public DateTime Date { get; set; }
    }
我想做的是在单个视图上显示这些方法的结果。我已经让它用于服务检查,结果显示正确,但我找不到如何添加事件结果

我目前的看法如下:

@{
    ViewBag.Title = "Monitoring";
}

@model IEnumerable<SystemMonitoringTool.Models.Monitoring.Service>

<div style="width:25%">
    <span>
        Services
    </span>
    <table id="services" style="border:solid; border-width:2px; width:100%">
        @foreach (var item in Model) {  
         <tr>
             <td>
                 @Html.DisplayFor(model => item.Name)
             </td>
             <td>
                 @Html.DisplayFor(model => item.Status)
             </td>
         </tr>                       
        }
    </table>
</div>
@{
ViewBag.Title=“监控”;
}
@模型IEnumerable
服务
@foreach(模型中的变量项){
@DisplayFor(model=>item.Name)
@DisplayFor(model=>item.Status)
}
有人能帮我找到一种在同一视图上并排显示这些内容的方法吗?如果需要,我们将乐意提供更多信息。

两个选项:

  • 使用子操作。与其直接执行这些单独的控制器操作,不如添加如下操作:

    public ActionResult Monitoring()
    {
        return View();
    }
    
    你会注意到这个动作没有多大作用。它只是渲染一个视图。然后需要将服务/事件的HTML移动到部分视图中。例如,
    \u GetServiceStatus.cshtml
    \u GetEventLogErrors.cshtml
    ,其中每个的模型分别是
    服务
    事件
    类型的集合。最后,在
    Monitoring.cshtml
    视图中(基于上面的操作名称),您将添加:

    @Html.Action("_GetServiceStatus")
    @Html.Action("_GetEventLogErrors")
    
    此视图不需要模型,因为它不直接处理任何对象

  • 使用封装两个集合的视图模型:

    public class MonitoringViewModel
    {
        public List<Service> Services { get; set; }
        public List<Event> Events { get; set; }
    }
    
    然后,您可以独立地遍历每个列表以构建HTML:

    Monitoring.cshtml(同样,基于操作名称)

    @model Namespace.To.MonitoringViewModel
    ...
    @foreach(Model.Services中的var项){//注意这里的更改
    @DisplayFor(model=>item.Name)
    @DisplayFor(model=>item.Status)
    }
    
  • 两种选择:

  • 使用子操作。与其直接执行这些单独的控制器操作,不如添加如下操作:

    public ActionResult Monitoring()
    {
        return View();
    }
    
    你会注意到这个动作没有多大作用。它只是渲染一个视图。然后需要将服务/事件的HTML移动到部分视图中。例如,
    \u GetServiceStatus.cshtml
    \u GetEventLogErrors.cshtml
    ,其中每个的模型分别是
    服务
    事件
    类型的集合。最后,在
    Monitoring.cshtml
    视图中(基于上面的操作名称),您将添加:

    @Html.Action("_GetServiceStatus")
    @Html.Action("_GetEventLogErrors")
    
    此视图不需要模型,因为它不直接处理任何对象

  • 使用封装两个集合的视图模型:

    public class MonitoringViewModel
    {
        public List<Service> Services { get; set; }
        public List<Event> Events { get; set; }
    }
    
    然后,您可以独立地遍历每个列表以构建HTML:

    Monitoring.cshtml(同样,基于操作名称)

    @model Namespace.To.MonitoringViewModel
    ...
    @foreach(Model.Services中的var项){//注意这里的更改
    @DisplayFor(model=>item.Name)
    @DisplayFor(model=>item.Status)
    }
    
  • 两种选择:

  • 使用子操作。与其直接执行这些单独的控制器操作,不如添加如下操作:

    public ActionResult Monitoring()
    {
        return View();
    }
    
    你会注意到这个动作没有多大作用。它只是渲染一个视图。然后需要将服务/事件的HTML移动到部分视图中。例如,
    \u GetServiceStatus.cshtml
    \u GetEventLogErrors.cshtml
    ,其中每个的模型分别是
    服务
    事件
    类型的集合。最后,在
    Monitoring.cshtml
    视图中(基于上面的操作名称),您将添加:

    @Html.Action("_GetServiceStatus")
    @Html.Action("_GetEventLogErrors")
    
    此视图不需要模型,因为它不直接处理任何对象

  • 使用封装两个集合的视图模型:

    public class MonitoringViewModel
    {
        public List<Service> Services { get; set; }
        public List<Event> Events { get; set; }
    }
    
    然后,您可以独立地遍历每个列表以构建HTML:

    Monitoring.cshtml(同样,基于操作名称)

    @model Namespace.To.MonitoringViewModel
    ...
    @foreach(Model.Services中的var项){//注意这里的更改
    @DisplayFor(model=>item.Name)
    @DisplayFor(model=>item.Status)
    }
    
  • 两种选择:

  • 使用子操作。与其直接执行这些单独的控制器操作,不如添加如下操作:

    public ActionResult Monitoring()
    {
        return View();
    }
    
    你会注意到这个动作没有多大作用。它只是渲染一个视图。然后需要将服务/事件的HTML移动到部分视图中。例如,
    \u GetServiceStatus.cshtml
    \u GetEventLogErrors.cshtml
    ,其中每个的模型分别是
    服务
    事件
    类型的集合。最后,在
    Monitoring.cshtml
    视图中(基于上面的操作名称),您将添加:

    @Html.Action("_GetServiceStatus")
    @Html.Action("_GetEventLogErrors")
    
    此视图不需要模型,因为它不直接处理任何对象

  • 使用封装两个集合的视图模型:

    public class MonitoringViewModel
    {
        public List<Service> Services { get; set; }
        public List<Event> Events { get; set; }
    }
    
    然后,您可以独立地遍历每个列表以构建HTML:

    Monitoring.cshtml(同样,基于操作名称)

    @model Namespace.To.MonitoringViewModel
    ...
    @foreach(Model.Services中的var项){//注意这里的更改
    @DisplayFor(model=>item.Name)
    @Ht