2009-11-23 67 views
0

我正在为使用ASP.NET MVC 1.0的客户端开发一个网站。有一个“个人资料页面”,其中包含许多与个人资料相关的链接。例如,“请求联系人”,“请参阅我们的指令”,“添加为您的朋友”等。将内容加载到jquery模式插件:iFrame或Ajax?

我想使用许多jQuery模式脚本之一来显示此链接,而不会将它们加载为正常页面/链接,因为链接是小功能,不值得为每个页面创建特定的页面。

所以这就是为什么我想使用模式插件将这些小功能的内容加载到配置文件的页面。

好的,问题是:我该怎么做?我可以使用iFrame加载内容或通过Ajax加载内容。

如果我使用iFrame,我需要一个包含所有页面estructure(html,heade,body等)的视图,但是如果我有Ajax请求,我只需要一个与我的表单并加载到另一个div,或与谷歌地图,或任何..

我应该与iFrame或Ajax?哪种方法最好?

感谢

回答

0

我这里假设你使用Thickbox

我更喜欢为每个页面分配一个视图,但我不使用iframe。无论哪种方式,您都需要在表示层上做一些工作。

我会从专门为AJAX请求创建的单独视图中获取部分返回值。

+0

ThickBox的不再维持。 jQueryUI具有非常灵活的对话框,其中包括模态对话框:http://jqueryui.com/demos/dialog/#modal – 2009-11-23 10:39:02

+0

尽管如此,有没有必要维护它?我的意思是..如果它工作... – 2009-11-23 14:33:16

0

我正在看FancyBox http://fancybox.net/home,它看起来很漂亮。我想我会做这样的事情:

我将使用Ajax.RenderPartial加载内容并填充一个空的DIV。如果JS被禁用,我将链接到一个普通的View,然后遵循正常的流程。

任何其他不错的提示家伙?

0

我将使用Ajax.RenderPartial加载 的内容并填充空的DIV。 如果JS被禁用,我会链接到一个 正常视图,然后它遵循 正常过程。

我认为这是Go的一种方式,使用RenderPartial对于AJAX提供的内容来说很优雅,就像这种情况一样。由于恶劣的优先级,IFrame是应该避免的。 是成为在这种情况下派上用场的另一件事是,你可以处理你的控制器两种情况下(JS主动/ JS不活跃)的方式:

public ActionResult Action() 
{ 
    if (Request.IsAjaxRequest()) 
    { 
     //This one just have the explicit content 
     return View("PartialView"); 
    } 
    else 
    { 
     //This one is a view that reference the partial View 
     return View("CompleteView"); 
    } 
}