SignalR SqlDepedensy совместно вызов модельного окна
У меня специфическая проблема. Не знаю правильно ли я делаю. Может есть варианты с лучше и правильнее. Но суть проблемы такая.. У Меня есть проект ASP.Net MVC5 где реализовано подключение к SQL Server и настроен SignalR На представление Index.chhtml
<table class="table align-middle mb-0 bg-white">
<thead class="bg-light">
<tr>
<th>ФИО</th>
<th>Должность</th>
<th>Мобильный</th>
<th>Городской</th>
<th>Внутренний</th>
</tr>
</thead>
<tbody id="messagesTable">
</tbody>
Через ajax получаю данные и создаю таблицу
function getAllMessages() {
var tbl = $('#messagesTable');
$.ajax({
url: '/Dashboard/GetMessages',
contentType: 'application/html ; charset:utf-8',
type: 'GET',
dataType: 'html',
success: function (result) {
var a2 = JSON.parse(result);
tbl.empty();
console.log(a2);
var data = {};
console.log(data);
var Departments = [];
$.each(a2, function () {
if (typeof data[this.Department] == "undefined") {
data[this.Department] = [];
}
data[this.Department].push(this);
if (Departments.indexOf(this.Department) == -1) {
Departments.push(this.Department);
}
});
Departments = Departments.sort();
$.each(Departments, function () {
tbl.append(
$("<tr>").append(
$('<th>', { 'class': "table-success"}).attr("colspan", "5")
.html(this)
)
);
data[this] = data[this].sort(function (a, b) {
return a.Title > b.Title;
});
$.each(data[this], function () {
tbl.append(
$("<tr>").append(
$("<td>").append(
$('<div>', { 'class': "d-flex align-items-center" }).append(
$('<img>', { 'class': "rounded-circle", 'src': "/assets/images/users/avatar-10.png", 'style': "width: 45px; height: 45px", 'alt':"" }),
$('<div>', { 'class': "ms-3>" }).append(
$('<a>', {'class': "fw-bold mb-1" }).html(this.DisplayName).append(
$('<p>', { 'class': "text-muted mb-0>" }).html(this.EmailAddress).append(
$('<a>', {'style': "display: none", 'class': "text-muted mb-0>" }).html(this.ObjectGUID)
)
)
)
)
),
$("<td>").append(
$('<p>', { 'class': "fw-normal mb-1>" }).html(this.Title)
),
$("<td>").append(
$('<p>', { 'class': "fw-normal mb-1>" }).html(this.MobilePhone)
),
$("<td>").append(
$('<p>', { 'class': "fw-normal mb-1>" }).html(this.Fax)
),
$("<td>").append(
$('<p>', { 'class': "fw-normal mb-1>" }).html(this.OfficePhone)
)
)
);
});
});
}
})
}
Контроллер возвращает JsonResult
public JsonResult GetMessages()
{
List<ADPersons> messages = new List<ADPersons>();
Repository r = new Repository();
messages = r.GetAllMessages();
return Json(messages, JsonRequestBehavior.AllowGet);
}
Все прогружается без проблем. Но Я хочу сделать чтоб при нажатии на ФИО можно было открыть модельное окно с подробностями. Пытался добавить следующее: Controller:
public ActionResult Details(Guid id)
{
var supplier = AD_DWEntities.ADusers.FirstOrDefault(O => O.ObjectGUID == id);
if (supplier == null)
return HttpNotFound();
return PartialView("Details", supplier);
} Изменить строчку на
$('<a>', { 'data-modal': "", 'href': "/Dashboard/Details/" + this.ObjectGUID, 'id': this.ObjectGUID, 'class': "fw-bold mb-1" }).html(this.DisplayName)
И обработчик
$(function () {
$.ajaxSetup({ cache: false });
$(".data-modal").click(function (e) {
e.preventDefault();
$.get(this.href, function (data) {
$('#dialogContent').html(data);
$('#modDialog').modal('show');
});
});
})
Но ни чего не происходит. Но про прохождение по ссылке Details данные там есть!