如何在 asp.net 页面中包含外部 html 文件

Posted

技术标签:

【中文标题】如何在 asp.net 页面中包含外部 html 文件【英文标题】:How to include an external html file in asp.net page 【发布时间】:2011-10-19 18:20:42 【问题描述】:

如何在asp.net 网页中包含external html file。在php中我们可以使用include函数,如果asp.net有类似的函数,请告诉我。我的意图是,我有一个通用的头 html 文件,所以我需要将该文件包含在所有 aspx 页面中。

【问题讨论】:

“外部”是指来自不同域/网站的 HTML 文件? 【参考方案1】:

服务器端包含可跨不同平台使用,对于包含静态内容很有用。您可以在 IIS 中使用它们,但我需要在 IIS7 中启用它们。

<!-- #include file="Static/Menu.html" -->

在 IIS7 中启用 SSI 的说明可在 http://tech.mikeal.com/ 获得

对于动态内容,有一个称为 MasterPages 的内置模板方法,应该使用它来代替。

【讨论】:

感谢您实际提供问题的答案而不是回答:您不应该这样做,而是这样做。【参考方案2】:

我假设这是网络表单?

在 asp.net 中执行此操作的最典型方法是使用 Master Page。在母版页中包含您的标题,并让内容页继承自此。

【讨论】:

【参考方案3】:

ASP.NET 是与 PHP 不同的框架,因此您最好不要尝试复制您可能在 PHP 中所做的事情的方式。我们在 ASP.NET 中使用母版页,而不是对常见元素(例如标题)使用“包含”文件。请参阅http://www.asp.net/master-pages/tutorials 或MSDN on Master Pages。母版页(与任何其他 .aspx 页面一样)中的内容可以是静态 HTML 或从控件动态生成的标记。

拥有可重复使用的内容块的另一种方法是创建称为User Controls 的内容。这些基本上是可以像其他服务器控件一样重用的页面片段。例如,您可以创建一个菜单用户控件,然后将其嵌入到一个通用母版页中。这是将您的网站分解为可管理的“块”的好方法。

有关更多信息,请参阅 SO 其他地方的问题 ASP.NET equivalent of server side includes。

【讨论】:

【参考方案4】:

除了使用MasterPage和UserControl之外,提供here的一种方式是使用Response.writeFile,但是这个解决方案的根本问题是:

ASP 不会处理文件中的服务器端脚本。这是因为所有 ASP 代码在包含文件时都已经运行,服务器不会再返回读取任何内容以进行服务器端处理

【讨论】:

有没有人可以解决上述问题,而不是 MasterPage 和 userControl?【参考方案5】:

您可以通过 IFrame 包含它 从 .Net 4.5 开始,您可以选择通过以下方式包含内容

有关 IFrame 的更多信息: http://www.w3.org/html/wg/drafts/html/master/semantics.html#the-iframe-element

【讨论】:

以上是关于如何在 asp.net 页面中包含外部 html 文件的主要内容,如果未能解决你的问题,请参考以下文章

能够在 ASP.NET 中包含文件,但不检查它是不是存在

ASP.NET MVC jQuery 自动完成与页面中包含的脚本中的 url.action 助手

在 asp.net 中包含 .css 文件

如何在反应中包含外部javascript

ASP.NET页面引用JavaScript文件无效解决方法

如何在 ASP.NET 中使用 log4net 在日志文件中包含 SessionID?