如何在asp.net MVC中使用jquery模式弹出窗口打开局部视图?

时间:2009-10-12 13:21:25

标签: jquery asp.net-mvc jqmodal

我有一个部分视图,我想通过使用JQuery Modal Popup打开它。打开新记录的视图时没有问题,但我想将数据传递到此部分视图进行编辑。你最好的方法是什么?

提前致谢。

2 个答案:

答案 0 :(得分:3)

我在目前的项目中运作良好。

部分视图使用继承控件标记,就像完整视图强烈地将Model对象类型化为数据类型一样。

这是一个非常简单的局部视图示例,它通过ajax调用返回并放在div中。此部分视图的目的是显示传递给它的文本消息。

<强> LiteralMessage.ascx

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
<!-- LiteralMessage.ascx start -->
<%= Model %>
<!-- LiteralMessage.ascx end -->

控制器方法

[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ReturnId(int id)
{
    return PartialView("LiteralMessage", string.Format("Hello world! Id: {0}", id));
}

请注意,在部分页面视图中可以是任何复杂对象。

我希望这有帮助!

编辑:,因为它也被列为jQuery,请将此作为ajax的成功事件。 (这假设你的对话框在一个ID为MyDialog的对话框DIV中有一个ID为MyDialogMessage的内容DIV)

// executes when $.post is complete
function doSuccess(result)
{
    $('div#MyDialog div#MyDialogMessage').html(result);
    //show dialog
    $('div#MyDialog').dialog('open');
}

答案 1 :(得分:1)

我会在控制器上创建一个返回partial view的动作。然后使用Colorbox(通过其IFRAME属性)通过jQuery加载控制器的结果。