これは私の最初のASP.NETコアプロジェクトです。私は、Index.cshtmlページに検索ボックスとボタンがある単一のページアプリケーションを持っています。検索ボックステキストが空白の場合は、何も表示されず、pIdに対応するレコードが検索され、Index.cshtmlページに表示されます。これまでのところ、これは素晴らしい動作です。検索結果と集計結果が1つのビューASP.NETコア
私は特定の日のために重量を集約することで、このビューを拡張し、ユーザーがPIDが入り、ページを送信すると、私はpId total_weight create_dt
を表示したいと思いますtop.Soでそれを表示するために探しています
その下に、私がすでに持っている現在のビューになります
pId bIdc rule_id weight create_dt
私はスコアを集計すべきかどうか分かりませんか?集計値を表示するために現在のビューを更新するにはどうすればよいですか?
コントローラ
public IActionResult Index(string pId)
{
var scores = from ts in _context.Scores
select ts;
if (!string.IsNullOrEmpty(pId))
{
scores = scores.Where(p => p.p_id.Equals(pId)).OrderByDescending(p => p.create_dt);
return View(scores.ToList());
}
else
return View();
}
Index.cshtml
<div id="p-form">
<form asp-controller="Score" asp-action="Index" method="get">
<p>
<b> P Id:</b> <input type="text" name="pId">
<input type="submit" value="Submit" />
</p>
</form>
</div>
@if (Model != null)
{
<div id="p-scores">
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(model => model.p_id)
</th>
<th>
@Html.DisplayNameFor(model => model.b_idc)
</th>
<th>
@Html.DisplayNameFor(model => model.rule_id)
</th>
<th>
@Html.DisplayNameFor(model => model.weight)
</th>
<th>
@Html.DisplayNameFor(model => model.create_dt)
</th>
</tr>
</thead>
<tbody>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(model => item.p_id)
</td>
<td>
@Html.DisplayFor(model => item.b_idc)
</td>
<td>
@Html.DisplayFor(model => item.rule_id)
</td>
<td>
@Html.DisplayFor(model => item.weight)
</td>
<td>
@Html.DisplayFor(model => item.create_dt)
</td>
</tr>
}
</tbody>
</table>
</div>
}
に型付けされていることを確認し、ビューにグループ化された結果を返すされているので、あなたは 'GroupBy'方法を試してみましたか? – Shyju
私はgroupbyをどこで使用するのですか?コントローラーで、どのように表示するのですか? –