在Razor中使用Query对表进行排序

时间:2017-05-29 22:37:13

标签: sql asp.net asp.net-mvc razor

我的目标是在数据库中为每个对象生成一个表,比如在我的案例中。根据汽车的状况,我想在给定汽车的给定表格中显示信息。我的问题是,我目前在每张桌子上都显示有关每辆车的相同信息,独立于汽车。

有没有办法在Razor中执行查询?我知道我现在的汽车的ID,这样我就可以查询必要的信息。这是我目前的代码:

@foreach (var car in Model.myCars)
{



   <h5>@Html.DisplayFor(modelItem => car.CarName)</h5>
    <table>
        <thead>
            <tr>
                <th>Id</th>
                <th>Sjekkpunkt</th>
                <th>Avviksbeskrivelse</th>
                <th>Risiko</th>
                <th>Dato rapportert</th>
            </tr>
        </thead>
        <tbody>

        @foreach (var item in Model.myCheckpoints.Zip(Model.myAnswers, (Item1, Item2) => new { Item1, Item2 }))
        {


            <tr>
                <td>@Html.DisplayFor(modelItem => item.Item1.Id)</td>
                <td>@Html.DisplayFor(modelItem => item.Item1.Description)</td>
                <td>@Html.DisplayFor(modelItem => item.Item2.Deviation)</td>
                <td>@Html.DisplayFor(modelItem => item.Item2.Risk)</td>
                <td>@Html.DisplayFor(modelItem => item.Item2.dateReported)</td>
            </tr>
        }

此代码出现问题,显示每辆车迭代完全相同的信息。现在Car表和Model.myCheckpoints之间存在连接。有没有办法查询,以便只显示在给定迭代中连接到给定汽车的myCheckpoints?

1 个答案:

答案 0 :(得分:0)

首先回答您的问题:

<强> 1。有没有办法在Razor中执行查询?

我强烈建议不要在剃刀中执行查询操作,即使有办法。 在控制器中执行所有查询逻辑或单独的帮助程序文件,并仅将查询结果传递给视图。

2.有什么方法可以查询,以便只显示在给定迭代中连接到给定汽车的myCheckpoints吗?

您可以使用linq函数根据要求执行任何查询。 例如: var Result = anyList.Where(s =&gt; s.Anycolumn1&gt; 12)。其中(s =&gt; s.Anycolumn2&lt; 20);

注意:如果你知道汽车的ID,请在你的案例中,然后使用id列过滤它。

希望以上信息有用,请告诉我您的想法或反馈

由于 KARTHIK