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>

当我调试应用程序时,我的输出中显示空白页面。你能告诉我哪里做错了吗?

我的视图路径是:
View->SearchCriteria->Index.cshtml View->SearchResults ->Index.cshtml View->SearchProfile ->Index.cshtml

4

2 回答 2

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 的锚标签时,它会使用 jQueryload函数以异步方式加载链接的 HREF 页面的内容。所以没有页面刷新/重新加载,用户会看到。

于 2012-08-04T15:55:08.447 回答
0

将框架更改为具有 ID 的 div,在框架 1 上有一个带 ID 的按钮,将单击事件附加到将获取数据并填充 div 2 的 html 的按钮,这就是它的完成方式。你会发现现在开发人员会走简单的路线,少写代码,多做事。如果您的框架解决方案是可能的(我相信它是),我相信大多数开发人员都会大吃一惊,然后去 OMG WTF 为什么他只是做 XXXX 并使这些东西易于维护:-)

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

于 2012-08-04T15:34:53.870 回答