signal r mvc 4显示索引视图的详细信息

时间:2013-05-13 12:55:10

标签: asp.net-mvc signalr

我尝试使用mvc 4索引视图显示信号r某些文本。我没有在索引页面上获得任何消息。

中心代码

 public class TasksHub : Hub
{
    public void NewTaskDetails(int taskid,string taskname,string created,string role)
    {
        Clients.All.addMessage(taskid, taskname, created, role);
 } }

控制器

var context = GlobalHost.ConnectionManager.GetHubContext<TaskManager.Hubs.TasksHub>();
context.Clients.All.addMessage
(tasklist.Taskid,tasklist.Taskname,tasklist.createdby,tasklist.Role);

查看

<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.signalR-1.0.0-alpha1.min.js"></script>
<script src="~/SignalR/Hubs"></script>
<script type="text/javascript">
$(function () {
    var THub = $.connection.TaskHub;
    $messages = $("#messages");
    myHub.client.send = function (taskid, taskname, created, role) {
        $messages.append("<br /><b>" + taskid + ":</b>" + taskname);
    }

    $.connection.hub.start();
});



</script>
<div id="messages">
</div>

1 个答案:

答案 0 :(得分:0)

首先离开你的行:

 myHub.client.send = function (taskid, taskname, created, role) {
    $messages.append("<br /><b>" + taskid + ":</b>" + taskname);
}

需要:

 THub.client.send = function (taskid, taskname, created, role) {
    $messages.append("<br /><b>" + taskid + ":</b>" + taskname);
}

myHub是什么,你没有宣布该变量?

上面第2行中您定义了一个Hub可以调用以将消息发送到客户端的功能。您将该功能称为“发送”,但在集线器端调用“addMessage”

第3,您需要定义一些将执行hub方法调用的客户端操作。我的意思是什么触发了hub方法的调用?您需要在$ .connection.hub.start()中添加一些逻辑,例如:

 $('#someElement').click(function () {
    // Declare taskid, taskname, created, role.
    THub.server.NewTaskDetails(taskid, taskname, created, role);
 }