У меня есть таблица Employee в SQL с 3 столбцами - EmployeeID (идентификатор), EmployeeName и BossID. Если сотрудник является боссом, его BossID равен -1. Например, если Джон босс, а его EmployeeID равен 12, у его работников BossID равен 12, а у Джона -1.
Я хочу показать 2 таблицы, таблицу боссов и таблицу рабочих (после нажатия на указанная строка c босса, чтобы получить их ID и только показать, что работники босса)
Вот мой код ниже:
-Controller
public class EmployeeController : Controller
{
EmployeeModule EM = new EmployeeModule();
public ActionResult Index()
{
ViewBag.List1 = EM.ListEmployees1();
ViewBag.List2 = TempData["List2"];
return View();
}
[HttpPost]
public ActionResult List2(int id)
{
TempData["List2"] = EM.ListEmployees2(id);
return RedirectToAction("Index","Employee");
}
}
Метод ListEmployees1 возвращает Список сотрудников, где их BossID = -1 (Boss Table) и ListEmployees2 возвращает список сотрудников с заданным идентификатором (Workers Table)
-Index.cs html
div class="container">
<div class="row">
<div class="col-lg-12">
-- Boss Table
<tbody>
@foreach (var item in @ViewBag.List1)
{
<tr>
<td>
<button type="button" class="btn btn-info" id=@item.ID ><i class="fa fa-info"></i></button>
</td>
<td>@item.EmployeeID</td>
<td>@item.EmployeeName</td>
<td>@item.BossID</td>
</tr>
}
</tbody>
</table>
</div>
</section>
</div>
</div>
@if (@ViewBag.List2 != null) {
<div class="row">
<div class="col-lg-12">
--Workers Table
<tbody>
@foreach (var item in @ViewBag.List2)
{
<tr>
<td>@item.EmployeeID</td>
<td>@item.EmployeeName</td>
<td>@item.BossID</td>
</tr>
}
</tbody>
</table>
</div>
</section>
</div>
</div>
}
</div>
script>
$('button[type="button"]').on('click', function (e)
{
var id = $(this).attr('id');
$.ajax({
type: "POST",
url : "@Url.Action("List2", "Employee")" + "?id=" + id,
success: function () {
window.location.href="/Employee/Index"
}
})
});
</script>
Когда я нажимаю кнопка для отображения рабочей таблицы, она вызывает действие List2, но когда она переходит в индекс, она не показывает его.