ここで他のいくつかの質問を見て、私の答えを見つけることができませんでした。たぶん私は適切なキーワードで検索していないでしょう。asp.netの結果セットに項目を追加するmvc entity 5
public partial class CheckDirectReports_Result
{
[Key]
public Guid? id { get; set; }
public string NAME { get; set; }
public string EMPLID { get; set; }
public short EMPL_RCD { get; set; }
public bool hasSignedOff { get; set; }
}
私は実行して結果を返すストアドプロシージャを持っています。私はその後、結果をループし、IDが存在するかどうかを比較したいと思います。私はビューに表示するレコードにboolフラグを追加したい場合。私が最初に私がループし、すべてのものに入れる前に、それはこのように返していた
var q = results.CheckDirectReports(EMPLID);
foreach (var i in q.ToList())
{
var g = results.PERSON_SIGN_OFF.Where(p => p.EMPLID == i.EMPLID).FirstOrDefault();
if(g != null)
{
i.hasSignedOff = true;
}
else
{
i.hasSignedOff = false;
}
}
return View(q);
が
return View(q.AsEnumerable());
をうまく働いた問題は、クエリの結果が複数回列挙することができない私に語っています。ここで
が私の見解です:
@model IEnumerable<CodeOfConduct.Models.CheckDirectReports_Result>
<h2>Manager Sign Off</h2>
@using (Html.BeginForm("Save", "Manager", FormMethod.Post))
{
<table class="table">
<thead>
<tr>
<th>Name</th>
<th>Employee ID</th>
<th></th>
<th>Select</th>
</tr>
</thead>
<tbody>
@foreach(var c in Model) // Print the list
{
<tr>
<td>@c.NAME</td>
<td>@c.EMPLID </td>
@{
if (c.hasSignedOff == true)
{
<td class="bg-success">Employee Has completed Sign-off</td>
}
else
{
<td class="bg-danger">Employee has not completed Sign-off</td>
}
}
<td>
@Html.ActionLink("Select Employee", "SignOff", new { ids=c.EMPLID, name = c.NAME })
</td>
</tr>
}
</tbody>
</table>
は、なぜそれがクエリの結果が複数回列挙することができない私に言っていますか?
についての詳細を知っている必要があるだろうか? 'return View(q);または' return View(q.AsEnumerable()); '?? 'return View(q);'はうまく動作するはずです。 – JamieD77
'return View(q)'が返されますが、ビューはエラーがスローされる場所です。私は下の応答を試み、それが動作するかどうかを見ます。 – mdarling