@foreach ((Employee, int) result in searchResults)
{
<tr>
<th scope="row">@result.Item1.Forename, @result.Item1.Surname
<i class="bi bi-info-circle" type="button" data-bs-toggle="offcanvas" data-bs-target="#offcanvasRight" aria-controls="offcanvasRight"></i>
<div class="offcanvas offcanvas-end" tabindex="-1" id="offcanvasRight" aria-labelledby="offcanvasRightLabel">
<div class="offcanvas-header">
<h5 id="offcanvasRightLabel">@result.Item1.Forename, @result.Item1.Surname</h5>
<button type="button" class="btn-close text-reset" data-bs-dismiss="offcanvas" aria-label="Close"></button>
</div>
<div class="offcanvas-body">
<Profile4Search Id = "@result.Item1.Id"/>
</div>
</div>
</th>
我想将 offcanvas
放在员工信息中,但 Profile4Search
组件不会重新呈现并且始终显示相同的信息。如何在 foreach 循环中重新渲染组件?
我想,组件 ProfileSearch 从 Parameter 接收 Id 并显示每个员工的详细信息(如果用户单击图标)但它只呈现一次,并显示相同的员工详细信息(这里是循环中的第一个员工)。
答案 0 :(得分:-2)
在 C# 中使用 for-each 循环时,通常需要将循环变量分配给临时变量。
@foreach ((Employee, int) result in searchResults)
{
var tmp = result.Item1;
<tr>
<th scope="row">@tmp.Forename, @tmp.Surname
不容易确定这是这里的原因,因为您的问题不太清楚什么是/不是-未呈现。 更多:Why is a temporary variable required in foreach to be included in lambda expression?