我正在使用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>
当我调试应用程序时,我的输出中显示空白页面。你能说出我错在哪里吗?
我的观点路径是:
查看 - &gt; SearchCriteria-&gt; Index.cshtml查看 - &gt; SearchResults - &gt; Index.cshtml查看 - &gt; SearchProfile - &gt; Index.cshtml
答案 0 :(得分: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页面的内容。所以没有页面刷新/重新加载,用户会看到。
答案 1 :(得分:0)
将帧更改为带ID的div,第1帧上有一个带ID的按钮,将click事件附加到将获取数据的按钮并填充div 2的html,这就是它的完成方式。你会发现,开发人员现在可以轻松实现路由,代码更少,做得更多。如果您的帧解决方案是可能的(我确定它是),我肯定大多数开发人员会喘息,然后去OMG WTF为什么dident他只做XXXX并使这些东西易于维护: - )
我不想推送任何特定的框架,但如果您对JSON或XML不满意,可以使用直接的javascript完成所有这些并返回html内容。