【发布时间】:2022-06-14 13:27:53
【问题描述】:
我使用 signalR 来管理数据库更改,当它发生时,我想将页面更新给其他用户,以便他们看到更改。但是到目前为止我所做的总是加载,这里是代码:
索引
@section scripts{
<script src="~/Scripts/jquery.signalR-2.4.3.min.js"></script>
<script src="/signalr/hubs"></script>
<script type="text/javascript">
$(function () {
var hubNotify = $.connection.Connection4Hub;
$.connection.hub.start().done(function () {
getAll();
});
hubNotify.client.GetUpdateData = function () {
getAll();
};
});
function getAll() {
var model = $('#dataModel');
$.ajax({
url: '/Manage/GetUpdateData',
contentType: 'application/html ; charset:utf-8',
type: 'GET',
dataType: 'html',
success: function(result) { model.empty().append(result); }
});
location.reload();
}
</script>
}
Connect4Hub
public class Connect4Hub : Hub
{
public static void BroadcastData()
{
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<Connect4Hub>();
context.Clients.All.GetUpdateData();
}
}
管理
public ActionResult GetUpdateData()
{
return PartialView("Partial_Index", db.Matches.ToList());
}
更新
我发现下面的方法永远不会调用,现在页面永远不会刷新
hubNotify.client.GetUpdateData = function () {
getAll();
};
【问题讨论】:
-
如果它是一个新数据库,没有相关数据,你可以删除它并应用你的迁移。
-
@AchoVasilev 我如何应用我的迁移?
-
你试过这个解决方案了吗?另外,这是什么版本的EF? stackoverflow.com/questions/26305273/…
-
请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
-
你为什么用
location.reload();
标签: c# asp.net-mvc database entity-framework signalr