【问题标题】:Menu driven interface using a master page and content pages使用母版页和内容页的菜单驱动界面
【发布时间】:2013-01-04 07:43:17
【问题描述】:

我似乎很难找到答案。我正在创建一个网站,其中主页(母版页)的标题中有一个漂亮的图形以及一个媒体播放器,您可以单击并收听歌曲。该主页还将包含一个菜单,供用户导航到网站的各个部分(例如信息、联系人、媒体等)。我想要的是能够通过单击菜单项而不刷新母版页来更改内容部分,以便媒体播放器不会停止播放。我已经查看了 UpdatePanel,它似乎在回发时有很多开销来加载页面的内容(例如,可能是相册等)。是否有一种相当直接的方法可以使用 ajax 或 aps.net 内置的东西来执行此操作,从而允许在不刷新母版页的情况下更新内容页面?考虑到很多网站都能够做到这一点,我有点惊讶我还没有找到使用谷歌的可靠解决方案。也许我的措辞是错误的。 ;) 我使用的是基本的 asp.net 4 网络表单模板,而不是 mvc。

【问题讨论】:

    标签: jquery asp.net ajax master-pages


    【解决方案1】:

    据我所知,使用 WebForms 没有比使用 UpdatePanels 更好的方法了。它们产生的开销是由于 WebForms 需要跟踪每个页面的 ViewState 的方式。

    您也许可以使用框架来解决问题,但对我来说这似乎更糟糕。

    【讨论】:

    • 我感觉有人会说要使用 UpdatePanel :)。我听说很多人说它会因为视图状态等而产生很多回发开销,但我认为即使是 MS 也使用他们的 WebForms 和 MVC 4 模板应用程序。 :)
    • @u84six:不,ASP.NET MVC 完全脱离了 UpdatePanel、ViewState 等。如果您想拥有一个漂亮的 AJAXy 界面,MVC 是您的最佳选择。另一方面,如果你被 WebForms 卡住了,你可以使用一些技巧来最小化 ViewState:这只是一个麻烦。
    • 也许我会切换到 mvc 4。我的意思是,这个站点没有很多数据驱动的内容,所以 mvc 没有任何意义(不需要 db;它是主要是静态信息和图像的小网站)。我会剥离 90% 的默认模板只是为了使用它的 ajax 部分。呃。
    【解决方案2】:

    你想要做的将是非常 ajaxy 和 javascript 使用 jQuery.. 你会想要做类似的事情

    $('#someMenuElement').click(function () {
         $.ajax(...) //Fetch your data here
    });
    
    page.successFetchMethod = function (data) {
        //Render your data here
    }
    

    您可以使用jsRender 之类的东西来轻松地对您的页面进行模板渲染。获取页面后,您可以设置一个标志,以便您知道只设置显示,而不是重新获取。您甚至可以添加过期时间,以便在“x”秒过去后获取数据的新副本。

    【讨论】:

      猜你喜欢
      • 2013-02-12
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 2013-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      相关资源
      最近更新 更多