Visual studio 2010 MVC 3-信号机移动外形示例
我试图采用本文中的演示,它是用vS2012开发的,但是我使用的是vs2010。 我做了一个模型:Visual studio 2010 MVC 3-信号机移动外形示例,visual-studio-2010,asp.net-mvc-3,signalr,Visual Studio 2010,Asp.net Mvc 3,Signalr,我试图采用本文中的演示,它是用vS2012开发的,但是我使用的是vs2010。 我做了一个模型: [HubName("moveShapeHub")] public class MoveShapeHub : Hub { public void UpdateModel(ShapeModel clientModel) { clientModel.LastUpdatedBy = Context.ConnectionId;
[HubName("moveShapeHub")]
public class MoveShapeHub : Hub
{
public void UpdateModel(ShapeModel clientModel)
{
clientModel.LastUpdatedBy = Context.ConnectionId;
Clients.AllExcept(clientModel.LastUpdatedBy).updateShape(clientModel);
}
}
修改后的Global.cs:
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
RouteTable.Routes.MapHubs();
}
他认为:
var moveShapeHub = $.connection.moveShapeHub,
$shape = $("#shape"),
shapeModel = {
left: 0,
top: 0
};
moveShapeHub.client.updateShape = function (model) {
shapeModel = model;
$shape.css({ left: model.left, top: model.top });
};
$.connection.hub.start().done(function () {
$shape.draggable({
drag: function () {
shapeModel = $shape.offset();
moveShapeHub.server.updateModel(shapeModel);
}
});
我得到以下错误:
无法获取未定义或空引用的属性“client”
知道我做错了什么;非常感谢您的建议。您是否已验证正在与服务器建立连接,如果没有,请添加
。失败(函数(){
警报(“连接失败”)}
到connection.hub.start方法的末尾,要查看它是否连接正常,请稍后尝试此方法:
moveShapeHub.on('updateShape', function(model) {
shapeModel = model;
$shape.css({ left: model.left, top: model.top });
});
看起来您的HTML中没有包含以下代码:
<script src='/signalr/hubs'></script>
始终解析应用程序相对URL
还要确保调用
RouteTable.Routes.MapHubs()代码>在映射任何其他路线之前。谢谢,我收到了以下错误:信号器:加载集线器时出错。确保您的中心引用是正确的,例如,在执行JavaScript之前,按以下顺序添加对脚本的引用:jquery、signalr、signalr/hubs;我一定是做错了什么事!谢谢你,我做了更改,甚至把所有的js都移动到主视图,仍然会得到相同的错误。我希望有一个简单的VS2010 MVC3示例,我发现的大多数示例都是在VS2012中构建的。如果您在web浏览器中手动转到您的版本,是否会看到生成的javascript页面?我收到HTTP错误400-错误请求。啊,第一次错过了这个示例,您需要在映射任何其他路由之前执行RouteTable.Routes.MapHubs()。因此,将该行移到应用程序开始的顶部。
<script src="<%: ResolveUrl("~/signalr/hubs") %>"></script>