2012-08-04 56 views
0

我使用的是asp.net mvc3.visual studio2010。从另一帧刷新一帧

我在我的应用程序中有三个框架。当我单击不同窗格中的按钮时,我想刷新另一个窗格。

为此,我在我的应用程序中使用了frameset。我用像

<frameset cols="25%,*,25%"> 
    <frame name ="f1" src="../SearchCriteria/Index"/> 
    <frame name="f2" src="../SearchResults/Index" /> 
    <frame name="f3" src="../SearchProfile/Index" /> 
</frameset> 

当我调试应用程序,空白页在我的输出显示。你能告诉我我犯了什么错误吗?

我的观点路径是:
视图 - > SearchCriteria-> Index.cshtml查看 - > SearchResult所 - > Index.cshtml查看 - > SearchProfile - > Index.cshtml

+1

这些日子谁使用框架? – Lucero 2012-08-04 09:24:50

+0

为我的应用程序,我有三个窗格,我想刷新一个窗格,当我单击另一个窗格上的按钮。所以最初我使用iframe加载窗格中的内容,但刷新其他页面中的一个页面不可能在iframe ,所以我已经移动到frameset.is有任何其他方式来实现这个? – steve 2012-08-04 09:34:37

+0

我会用JS和AJAX调用来解决这个问题,使用jQuery等库来提供跨不同浏览器的兼容层。 – Lucero 2012-08-04 09:46:34

回答

0

改变帧与ID的div,上框架1有一个带ID的按钮,将点击事件附加到将获取数据并填充div 2的html的按钮,这是如何完成的。你会发现现在开发者会变得简单,代码少,做得更多。如果你的框架解决方案是可能的(我肯定是这样),这将是我肯定大多数开发人员只会喘气的东西,并去OMG WTF为什么他只是做XXXX,并使这个东西容易维护:-)

我不想推送任何特定的框架,但是如果您对JSON或XML不满意,您可以直接使用javascript并返回html内容来完成所有这些工作。

1

由于它是一个ASP.NET MVC应用程序,因此您的项目中应该已经有jQuery库。为什么不使用一些jQuery很酷的功能并为用户提供美妙的用户体验?

使用DIV而不是FrameSet。包括jQuery库到这个页面(或布局页,因此,这将是在使用该布局模板的所有页面中提供)

<div id="divNavigation"> 
    <ul> 
    <li>@Url.ActionLink("About","About","Home",null, new { @class="lnk"})</li> 
    <li>@Url.ActionLink("Contact","Contact","Home",null, new { @class="lnk"})</li> 
    <li>@Url.ActionLink("Jobs","Jobs","Home",null, new { @class="lnk"})</li> 
    </ul> 
</div> 
<div id="content"> 

</div> 
<script type="text/javascript"> 
    $(function(){ 
    $(".lnk").click(function(e){ 
     e.preventDefault(); 
     $("#content").load($(this).attr("href")); 
    }); 
    }); 
</script> 

什么上面的代码的作用是,当用户在一个锚标记单击带有CSS类lnk,它将使用jQuery load函数以异步方式加载链接的HREF页面的内容。所以没有页面刷新/重新加载,用户会看到。