如何使用AJAX在jquery对话框中更新视图?

时间:2013-02-23 23:58:51

标签: jquery asp.net-mvc asp.net-mvc-3 jquery-dialog

默认情况下这包含我的剃刀视图,请注意我使用的是AJAX链接,下面也是控制器方法。

            <td class="questionText">@Ajax.ActionLink("some text", "PreviewQuestion", new { questionId = question.Id },
                new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "target" })</td>

   public ActionResult PreviewQuestion(int questionId)
    {
        db = new ContosoDb();
        var question = db.Questions.Find(questionId);

        return PartialView("_MultipleChoiceQuestion", question);
    }

正如您所看到的,我正在尝试更新Jqueryd对话框的当前视图,这是我的目的。我打算使用以下插件:

http://jqueryui.com/dialog/#default

到现在为止,如果我在return PartialView(...)中设置断点是可以的。但是我不知道在哪里可以编写代码以显示弹出窗口,并通过动作控制器更新对话框内容。

2 个答案:

答案 0 :(得分:1)

我认为你的部分视图是返回某种HTML代码段,你打算通过使用该插件将其转换为对话框。你需要在ajax调用中再增加一个参数,例如

new AjaxOptions() { InsertionMode = InsertionMode.Replace, UpdateTargetId = "target",OnComplete = "your_js_function();" }

该功能将类似于

function your_js_function()
 $( "#target" ).dialog();
}

该功能的目的是触发对话框的外观。

我希望有帮助

答案 1 :(得分:1)

使用 AjaxOptions OnSuccess 事件来连接javascript代码。 OnSuccess会将调用结果传递给您,在这种情况下是部分视图的内容。现在您可以使用jqDialog来显示内容 您的javascript函数大致如下所示

function processResults(results){
    $(results).dialog();
}