gpt4 book ai didi

jquery - $.connection 未定义 + signalR 0.5.3 + MVC4

转载 作者:行者123 更新时间:2023-12-03 22:39:39 25 4
gpt4 key购买 nike

粘贴这个错误已经花了两个小时了..

TypeError: $.connection is undefined
[Break On This Error]

var chatHubClient = $.connection.chatHub;

这是我的 Chat.cs(位于 Controller 文件夹中 - 我猜这是我做错的事情,但我找不到任何关于放置它或如何路由它的文档)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SignalR.Hubs;

namespace SingalrTest.Controllers
{
public class Chat
{
private readonly static Lazy<Chat> _instance = new Lazy<Chat>(() => new Chat());

public static Chat Instance
{ get { return _instance.Value; } }
}

[HubName("chatHub")]
public class ChatHub : Hub
{
private readonly int TimeoutInSeconds = 30;
private readonly Chat _chat;

public ChatHub() : this(Chat.Instance) { }

private ChatHub(Chat chat)
{
this._chat = chat;
}

public void Join(string channelName)
{
System.Diagnostics.Debug.WriteLine("Someone joined " + channelName);
}
}
}

最后,..可能的 _Layout.cs.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title - My ASP.NET MVC Application</title>
<link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
<meta name="viewport" content="width=device-width" />

@Styles.Render("~/Content/css")
@Scripts.Render("~/bundles/modernizr")
@Scripts.Render("~/Scripts/jquery-1.8.1.js")
@Scripts.Render("~/Scripts/jquery.signalR-0.5.3.js")
@Scripts.Render("~/signalr/hubs")

<script type="text/javascript">
$(document).ready(function () {
// var chatHubClient = jQuery.connection.chatHub;
var chatHubClient = $.connection.chatHub;

$.connection.chatHub.start(function () {
chatHubClient.join('TEST');
});
});
</script>
</head>
<body>
...
</body>
</html>

如果我访问/signalr/hubs,我可以看到源已正确生成。那么我错过了什么大事?

最佳答案

你可能已经继续前进...

但这就是解决方案。

您的所有脚本都以正确的顺序放置在 head 标记中。但 Visual Studio 模板中的 _Layout.cshtml 的 body 标记末尾有以下几行。

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

这个包有 jQuery 库,加载时会覆盖 $ 对象。因此,SignalR 在此设置上的任何“内容”现在都会被覆盖并且无法访问。

只需在您的页面中使用以下内容即可。

@section scripts {
@* Load your scripts here. (and remove jQuery, coz it's already loaded) *@
}

希望这有帮助。

关于jquery - $.connection 未定义 + signalR 0.5.3 + MVC4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12396233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com