举个例子,这个链接是/Site/Tris/tris.aspx?sessionId=8a657a7b15ee44c39063c8ae45a6ed3b
这是js代码:
<script type="text/javascript">
$(function () {
// Declare a proxy to reference the hub.
var proxy = $.connection.myHub;
proxy.client.test = function () {
$('input').hide();//for testing
};
// start connetion
$.connection.hub.start(function () {
var sessionId = $(document).getUrlParam("sessionId");
proxy.server.joinGroup(sessionId);
});
});
</script>这是中心:
public void JoinGroup(string groupName)
{
this.Groups.Add(Context.ConnectionId, groupName);
}
public void test(string x)
{
Clients.Group(x).test();
}当我执行以下步骤时,这是aspx代码:
protected void Image_Click(object sender, ImageClickEventArgs e)
{
string s = "8a657a7b15ee44c39063c8ae45a6ed3b";
IHubContext context = GlobalHost.ConnectionManager.GetHubContext<MyHub>();
context.Clients.Group(s).test();
}当我调用context.Clients.Group(s).test();在js中返回到$.connection.hub.start并重新加入到组中时,不会调用test()!为什么?我该怎么做?谢谢
发布于 2016-02-03 15:03:19
原因是当我点击一个图像,在ASPX中有一个事件时,它会发送一个POST请求,这样页面就会被刷新。
proxy.client.test = function () {
$('input').hide();//for testing
};`被称为。我必须使用js来完成所有这些工作,避免POST请求和刷新。
https://stackoverflow.com/questions/35071838
复制相似问题