2

我最近关注了这个链接http://www.kevgriffin.com/why-should-asp-net-developers-consider-signalr-for-all-projects/开始在 ASP.NET MVC3 上使用 SignalR。

我想要做的是提供具有 SignalR 功能的部分视图。因此,当我使用 AJAX 加载局部视图时,我会在成功时调用以下函数:

function loadSuccess() {
    var chat = $.connection.chatHub;
    chat.writeMessage = function (msg) {
        $("#messages").append("<li>" + msg + "</li>");
    }

    $("#buttonSubmit").click(function () {
        chat.broadcastMessage($("#txtInput").val());
    });

    $.connection.hub.start();
}

麻烦的是它似乎没有运行(在加载局部视图后插入一个alert('hi')just aftervar chat = ...不会导致对话框出现)。但是,如果我在加载包含视图的整个 DOM 后运行这段 JavaScript(即,尚未加载部分视图),则脚本运行得非常好。

有人知道我为什么遇到这个问题吗?

编辑:当然,这就是我所说的 loadSuccess ...

@Ajax.ActionLink("chat", "Index", "Chat", ChatOpts)

...以及相应的ChatOpts

AjaxOptions ChatOpts = new AjaxOptions
{
    UpdateTargetId = "placeholder",
    OnSuccess = "loadSuccess"
};
4

0 回答 0