2009-10-12 42 views
3

我有一个部分视图,我想通过使用JQuery模式弹出窗口打开。打开新记录的视图时没有问题,但是我想将数据传递到这个局部视图进行编辑。你最好的实现方式是什么?如何通过在asp.net MVC中使用jquery模式弹出窗口来打开局部视图?

在此先感谢。

+0

这里整齐[文章](http://yassershaikh.com/how-to-创建一个模式弹出在asp网络mvc 3使用jquery /)为... – Yasser 2012-09-26 11:53:42

回答

3

我在当前的项目中运行良好。

局部视图使用继承控件标记就像完整视图一样将模型对象强类型为数据类型。

这是一个非常简单的部分视图示例,它通过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的成功事件。 (这是假设你的对话与MyDialogMessage的ID的内容DIV的对话DIV里面有MyDialog的ID)

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

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

相关问题