0

这是默认情况下包含我的剃刀视图的内容,请注意我使用的是 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(...)就可以了。但我不知道我必须在哪里编写代码以显示弹出窗口,并通过动作控制器更新对话框内容。

4

2 回答 2

1

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

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

该功能将类似于

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

该函数的目的是触发对话框的出现。

我希望这会有所帮助

于 2013-02-24T00:32:28.367 回答
1

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

function processResults(results){
    $(results).dialog();
}
于 2013-02-24T00:35:43.030 回答