У меня есть таблица с различными пользователями и кнопка «Подробности», которая должна отображать сведения о пользователе в модальном всплывающем окне.Это работает для первого в списке, но во всех остальных он открывает новую вкладку для информации, я уверен, что упускаю что-то очевидное, но это сбивает меня с толку.
Контроллер;
[HttpGet]
public ActionResult DetailsPopup(int id)
{
var user = UIDal.GetToolUser(id);
return PartialView(user);
}
Код кнопки:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.DomainAccount)
</td>
<td>
@Html.DisplayFor(modelItem => item.DisplayLogonId)
</td>
<td>
@Html.DisplayFor(modelItem => item.UnlimitedAccess)
</td>
<td id="toolUserIdValue" style="display:none;">
@Html.DisplayFor(modelItem => item.ToolUserId)
</td>
<td class="float-left">
<a href="@Url.Action("DetailsPopup", "ToolUser" , new { id = item.ToolUserId })" class="btn btn-warning" id="btnDetailsModal" data-target="#detailsModal" data-toggle="tooltip" data-placement="top" title="User Details">
<i class="fas fa-info-circle"></i>
</a>
</td>
</tr>
}
Подробности Модальный:
<div id="detailsModal" class="modal" tabindex="-1" role="dialog">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title">User Details</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div id="detailsBody" class="modal-body">
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" id="modalClose" data-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>
jQuery:
$(document).ready(function () {
$("#btnDetailsModal").on("click", function (e) {
e.preventDefault();
var uid = document.getElementById("toolUserIdValue").innerHTML;
var trimString = uid;
trimString = trimString.trim();
uinfo = trimString;
$.ajax({
type: "GET",
url: "@Url.Action("DetailsPopup")" + '/' + uinfo,
async: true,
cache: false,
data: JSON.stringify(uinfo),
contentType: "application/json; charset=utf-8",
//dataType: "json",
success: function (data) {
//$("#responsedata").html("");
$("#detailsBody").html(data);
$("#detailsModal").modal('show');
},
error: function(errmsg) {
alert(JSON.stringify(errmsg));
$('#loadingDiv').hide();
}
});
});
});
$('#modalClose').on("click", function () {
$(this).removeData('detailsBody');
})