一旦用户阅读或单击锚标记,我必须更新消息的状态,以便将特定消息从列表中删除。
我希望使用更新状态。这是我到目前为止所做的
$(document).ready(function () {
$('counterBackground').html = null;
$.ajax({
type: "GET",
dataType: "json",
url: "/Message/GetMessages",
traditional: true,
contentType: "application/json;charset=utf-8",
success: function (data)
{
$('#counter').html(data.length);
let messages = `
<ul>
<li>
<a>
<div>
<img>
</div>
<div>
<div>
<h5><span><small>
<time><span></span></time>
</small></span></h5>
</div>
<p></p>
</div>
</a>
</li>
</ul>`
;
for (let m of data) {
messages += `<ul><li>
<a href="">
<div class="message-avatar">
<img src="https://bootdey.com/img/Content/avatar/avatar3.png" alt="">
</div>
<div class="message-body">
<div class="message-body-heading">
<h5>${m.subject}<span> <small class="fa-pull-right">
<time class="timeago" datetime=""><span>${m.createdDate}</span></time>
</small></span></h5>
</div>
<p>${m.body}</p>
</div>
</a>
</li>
</ul>`
// Setting innerHTML as tab variable
document.getElementById("messageList").innerHTML = messages;
}
console.log(data);
},
error: function (xhr, status, error) { }
});
})
$(function IsRead() {
$.ajax({
Type: 'POST',
dataType: "json",
url: "/Message/UpdateMsgStatus",
traditional: true,
data: { msgId: Id },
success: function (result) {
result.IsRead=1
}
});
})
字符串
在我的控制器中,方法是这样的
public JsonResult UpdateMsgStatus(string Id)
{
var msg= ctx.Messages.Where(m => m.MessageId == Id).FirstOrDefault();
if (msg != null)
{
msg.MessageId=Id;
msg.IsRead = 1;
ctx.SaveChanges();
}
return Json(msg);
}
型
这是我的信息列表
任何帮助将不胜感激。谢谢。
1条答案
按热度按时间vq8itlhq1#
一旦用户阅读或点击锚标签,我必须更新消息的状态
aplog只会更新您当前页面中的消息,如果您想更新其他标签页中的消息,一旦您阅读了stackoverflow的收件箱中的消息,您必须尝试使用其他技术,例如signalr
对于在
$(document).ready()
之后创建的元素,必须将事件绑定到document而不是元素字符串
另外,由于您使用的是asp.net核心,因此可以创建一个局部视图,而不是在jquery代码中编写大量的html。
完整的最小示例:
型
局部视图控制器:
型
局部视图:
型
测试结果:
的数据