我尝试使用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>
答案 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);
}