使用局部视图加载SignalR

时间:2012-07-13 20:30:07

标签: c# jquery asp.net-mvc-3 partial-views signalr

我最近关注了这个链接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')之后插入var chat = ...不会导致在加载局部视图后显示对话框)。但是,如果我在加载包含视图的整个DOM时运行这段JavaScript(即,部分视图尚未加载),则脚本运行完全正常。

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

编辑:当然,这就是我调用loadSuccess的方式......

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

...以及相应的ChatOpts

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

0 个答案:

没有答案