【问题标题】:Combining multiple asp.net pages into a single page将多个asp.net页面组合成一个页面
【发布时间】:2017-08-22 04:30:16
【问题描述】:

是否可以在单个 aspx 页面下合并或引入不同 aspx 文件的内容?但是,我想在不将 aspx 转换为 ascx 的情况下实现它,因此没有用户控件。

注意:我愿意使用 Javascript 或 Jquery 等客户端脚本。不,这不是重复的of

编辑:尽管这似乎是一个糟糕的设计理念,但这正是我想要的功能。所有页面都应成为单个页面的内容,忽略所有单独的 CSS 和 Javascript。

【问题讨论】:

    标签: asp.net webpage asp.net-webpages


    【解决方案1】:

    简短的回答是你不能这样做,如果你已经到了需要这样做的地步,那么你的页面设计就很糟糕。为什么?因为一个完整的页面不仅包含内容,还包含 css、javascript、标题、标题等,它们是独一无二的,你不能与其他页面混合,而不会出现 javascript 和 css 冲突等问题。例如。 页面的最终标题是什么?等等。

    您的选择是:

    • iframe's的使用
    • 使用背后的代码动态呈现页面并将其添加到占位符上。

    【讨论】:

      【解决方案2】:

      您可以使用 HTML frameset 将页面划分为单独的框架,每个框架都可以有一个 ASPX 页面作为其源。

      【讨论】:

      • HTML5 不支持 标签。
      • @KeyBrdBasher 非常正确,但是对于 HTML5,帧的渲染是 defined,所以我希望它可以在所有当代浏览器中工作。
      【解决方案3】:

      除了 Aristos 和 michielvoo 建议的方法之外,另一种方法是使用 JQuery .load() 方法。为要显示的页面制作不同的内容持有者,并使用 JQuery 选择器将这些页面的 HTML 内容设置为内容持有者。

      累加。到 JQuery 文档

      此方法是从服务器获取数据的最简单方法。当 检测到成功响应 .load() 设置 HTML 内容 与返回数据匹配的元素。

      $('#result').load('ajax/test.html');
      

      【讨论】:

      • .load 方法将加载所有 html,包括 asp.net 隐藏字段。其中包含视图状态的值。而且您的页面可能会损坏,因为会有多个名为 _hidded 的隐藏字段
      • 同意!它甚至会导致使用框架时不会发生的 Css 冲突,但这也是实现目标的一种方式(不是完美的,而是一种方式)。
      • 摆脱这种冲突的一种方法是将您的 css 和脚本放在主页上。创建一个像 div 这样的容器并仅加载该 div。如下 $('#result').load('ajax/test.html #container');
      【解决方案4】:

      您可以简单地将页面相互附加,我这样做是为了全国性的 craigslist 搜索。

      我将所有结果附加到单个页面,然后在浏览器中查看该页面

      您使用列表框、浏览器控件,然后将文本附加到单个文件中

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-12-03
        • 1970-01-01
        • 1970-01-01
        • 2010-11-05
        • 1970-01-01
        • 2013-06-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多