Asp.net mvc 3 创建具有2个轴的栅格

Asp.net mvc 3 创建具有2个轴的栅格,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我试图创建一个网格,其中包含x轴上的事件和y轴上的需求,并填充解决方案 Event1 Event2 Req1 Sol1 Req2 Sol2 我的模型包含一个事件列表,其中包含它们的相关需求,其中包含它们的相关解决方案。每个事件可以有0个或多个需求,每个需求可以有0个或多个解决方案 如何在razor中准确显示此网格 以下是我的尝试: <table border="1"> <tr>

我试图创建一个网格,其中包含x轴上的事件和y轴上的需求,并填充解决方案

        Event1        Event2
Req1    Sol1
Req2                  Sol2
我的模型包含一个事件列表,其中包含它们的相关需求,其中包含它们的相关解决方案。每个事件可以有0个或多个需求,每个需求可以有0个或多个解决方案

如何在razor中准确显示此网格

以下是我的尝试:

<table border="1">
    <tr>
        <td class="span-6"></td>
        @foreach(var events in Model.Events)
        {
        <td colspan="3">
            @events.Name
        </td>
            requirementsList.AddRange(events.Requirements);
        }
    </tr>
    @foreach(var req in requirementsList)
    {   
        <tr>
            <td>
                @req.Name
            </td>
            <!--Insert logic to align solution with Event-->
            <td>
                @req.Solution
            </td>
        </tr>
    }
</table>

@foreach(Model.events中的var事件)
{
@事件名称
requirementsList.AddRange(事件.要求);
}
@foreach(要求列表中的var要求)
{   
@请求名称
@请求解决方案
}

当然,这只是在第一个事件列中显示所有解决方案。

我在PHP中为我的时间表系统做了类似的事情,我希望每个员工每天工作小时数(两个日期之间):

我使用了3个foreach循环,首先我输出日期,然后我对每个员工进行循环,在员工循环中,我再次循环日期

因此,对你来说,这将是:

<table border="1">
    <tr>
        <td class="span-6"></td>
        @foreach(var events in Model.Events)
        {
        <td colspan="3">
            @events.Name
        </td>
            requirementsList.AddRange(events.Requirements);
        }
    </tr>
    @foreach(var req in requirementsList)
    {   
        <tr>
            <td>
                @req.Name
            </td>
            @foreach(var events in Model.Events)
            {
                @curRec = events.Requirements
               @if (curRec.HasSolution) // If has a solution.
                // Very important so solutions can be aligned properly
               { // Output the solution
            <td>
                @curRec.Solution
            </td>
               } else { // Output a empty cell
                   <td></td>
               }
            }
        </tr>
    }
</table>

@foreach(Model.events中的var事件)
{
@事件名称
requirementsList.AddRange(事件.要求);
}
@foreach(要求列表中的var要求)
{   
@请求名称
@foreach(Model.events中的var事件)
{
@curRec=事件。要求
@if(curRec.HasSolution)//if有一个解。
//非常重要,因此可以正确调整解决方案
{//输出解决方案
@电流解
}else{//输出一个空单元格
}
}
}
<table border="1">
    <tr>
        <td class="span-6"></td>
        @foreach(var events in Model.Events)
        {
        <td colspan="3">
            @events.Name
        </td>
            requirementsList.AddRange(events.Requirements);
        }
    </tr>
    @foreach(var req in requirementsList)
    {   
        <tr>
            <td>
                @req.Name
            </td>
            @foreach(var events in Model.Events)
            {
                @curRec = events.Requirements
               @if (curRec.HasSolution) // If has a solution.
                // Very important so solutions can be aligned properly
               { // Output the solution
            <td>
                @curRec.Solution
            </td>
               } else { // Output a empty cell
                   <td></td>
               }
            }
        </tr>
    }
</table>