0

我有 LINQ 查询从实体框架连接获取一些数据。我将数据从控制器传递到视图。运行代码时,我收到错误“指定的演员表无效。”

这是我的 LINQ 语句

var MeltAreaInformation =
    new
    {
        Striko1 = (from item in db.tbl_dppITHr where item.ProductionHour >= SelectedDateDayShiftStart && item.ProductionHour <= SelectedDateDayShiftHr25End select item).Sum(x => x.Striko1) ?? 0,

              Striko2 =
             (from item in db.tbl_dppITHr
              where item.ProductionHour >= SelectedDateDayShiftStart && item.ProductionHour <= SelectedDateDayShiftHr25End
              select item).Sum(x => x.Striko2) ?? 0,

              Striko3 =
             (from item in db.tbl_dppITHr
              where item.ProductionHour >= SelectedDateDayShiftStart && item.ProductionHour <= SelectedDateDayShiftHr25End
              select item).Sum(x => x.Striko3) ?? 0,

              Striko4 =
             (from item in db.tbl_dppITHr
              where item.ProductionHour >= SelectedDateDayShiftStart && item.ProductionHour <= SelectedDateDayShiftHr25End
              select item).Sum(x => x.Striko4) ?? 0,

              Striko5 =
             (from item in db.tbl_dppITHr
              where item.ProductionHour >= SelectedDateDayShiftStart && item.ProductionHour <= SelectedDateDayShiftHr25End
              select item).Sum(x => x.Striko5) ?? 0,

              Induction1 =
             (from item in db.tbl_dppITHr
              where item.ProductionHour >= SelectedDateDayShiftStart && item.ProductionHour <= SelectedDateDayShiftHr25End
              select item).Sum(x => x.Inductotherm1) ?? 0,

              Induction2 =
             (from item in db.tbl_dppITHr
              where item.ProductionHour >= SelectedDateDayShiftStart && item.ProductionHour <= SelectedDateDayShiftHr25End
              select item).Sum(x => x.Inductotherm2) ?? 0,
    };


        ViewData["Striko2"] = MeltAreaInformation.Striko1.ToString();

现在,当我在 Var MeltAreaInformation 的调试和悬停中运行应用程序时,您可以看到它分配了以下内容。 在此处输入图像描述

以下是我用来在 HTML 页面上显示 ViewData 的 Razor 语法。

<table class="MeltTable">
<tr><th colspan="7">Total Weight Poured (kg's)</th></tr>
<tr><th>Striko 2</th><td class="MeltTableZero td @((int)ViewData["Striko2"] == 0 ? "red" : null)">@ViewData["Striko2"].ToString()</td></tr>
<tr><th>Striko 3</th><td class="MeltTableZero td @((int)ViewData["Striko3"] == 0 ? "red" : null)">@ViewData["Striko3"].ToString()</td></tr>
<tr><th>Striko 4</th><td class="MeltTableZero td @((int)ViewData["Striko4"] == 0 ? "red" : null)">@ViewData["Striko4"].ToString()</td></tr>
<tr><th>Striko 1</th><td class="MeltTableZero td @((int)ViewData["Striko1"] == 0 ? "red" : null)">@ViewData["Striko1"].ToString()</td></tr>
<tr><th>Striko 5</th><td class="MeltTableZero td @((int)ViewData["Striko5"] == 0 ? "red" : null)">@ViewData["Striko5"].ToString()</td></tr>
<tr><th>Induction 1</th><td class="MeltTableZero td @((int)ViewData["Inductotherm1"] == 0 ? "red" : null)">@ViewData["Inductotherm1"].ToString()</td></tr>
<tr><th>Induction 2</th><td class="MeltTableZero td @((int)ViewData["Inductotherm2"] == 0 ? "red" : null)">@ViewData["Inductotherm2"].ToString()</td></tr>
</table>

任何人都可以阐明这个问题。我试图手动分配值,但我仍然遇到同样的问题。

4

1 回答 1

1

ViewData["Striko2"] = MeltAreaInformation.Striko1.ToString();

这是您的问题-您将值ViewData作为字符串放入包中,然后尝试将它们投射到您的视图中:

@((int)ViewData["Striko2"] == 0 ? "red" : null)

那是不会发生的!要么将值作为它们的类型 ( int) 打包,要么不将它们投射到视图中(你可以只写没有投射的字符串) - 你的电话

于 2013-11-06T12:45:30.030 回答