我正在关注启动SignalR项目的快速教程,在我的Hub类中,我有以下内容
using Microsoft.AspNet.SignalR.Hubs;
namespace MvcApplication8.Hubs
{
public class ChatHub : Hub
{
public void BroadcastMessage(string message)
{
Clients.writeMessage(message);
}
}
}
客户代码:
$(document).ready(function () {
var chat = $.connection.chatHub;
chat.writeMessage = function(msg) {
$("#messages").append("<li>" + msg + "</li>");
};
$("#buttonSubmit").click(function () {
chat.broadcastMessage($("#txtInput").val());
});
$.connection.hub.start();
});
但是我收到编译时错误说:
'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext'不包含 'writeMessage'的定义,没有扩展方法'writeMessage' 接受第一个类型的参数 可以找到'Microsoft.AspNet.SignalR.Hubs.HubConnectionContext' (您是否缺少using指令或程序集引用?)
出了什么问题?
我从http://nuget.org/packages/microsoft.aspnet.signalr将SignalR安装到我的项目中 使用包管理器控制台“Install-Package Microsoft.AspNet.SignalR -Pre”
答案 0 :(得分:1)
您是否创建了相应的客户端功能?
<script type="text/javascript">
$(function () {
var chat = $.connection.chat;
chat.writeMessage = function (message) {
$('#messages').append('<li>' + message + '</li>');
};
$.connection.hub.start();
});
</script>
答案 1 :(得分:1)
检查您是否安装了以下软件包:
答案 2 :(得分:0)
尝试更新NuGet包。工具&gt; NuGet包管理器&gt;管理NuGet Packages for Solution,在窗口的左侧部分单击“更新”,在Windows的中央部分,您将获得要更新的软件包列表,然后在软件包上单击“安装”,您是否希望获得最新版本。我更新了所有:JQuery,Json.NET,Microsoft ASP.NET SignalR,Microsoft.Owin
将软件包更新到最新版本(SignalR Currently 2.2.0)后即可编译。不要忘记“StockTicker.html”中的更新引用,在我更新后的情况下看起来像:
<script src="/Scripts/jquery-2.1.4.min.js"></script>
<script src="/Scripts/jquery.signalR-2.2.0.js"></script>