【问题标题】:render .htm page into .aspx page将 .html 页面呈现为 .aspx 页面
【发布时间】:2009-12-01 08:45:13
【问题描述】:

在我的 .aspx 页面中,我想呈现一个包含一些数据的 .htm 页面 在 .aspx 页面中我有:

<% Html.RenderPartial("/Views/Templates/HTML_Temp.htm"); %>

但这会产生运行时错误:

“/”应用程序中的服务器错误。

没有为扩展“.htm”注册构建提供程序。您可以在 machine.config 或 web.config 的部分中注册一个。确保它具有包含值“Web”或“All”的 BuildProviderAppliesToAttribute 属性。

如何解决这个问题...请帮助

【问题讨论】:

  • Html.RenderPartial() 无论如何都是 Asp.net MVC 的一部分。您说的是常规网络表单,不是吗?

标签: asp.net


【解决方案1】:

试试这个:

&lt;%= File.ReadAllText(Server.MapPath("/Views/Templates/HTML_Temp.htm")) %&gt;

【讨论】:

    【解决方案2】:
    <%= System.IO.File.ReadAllText(Server.MapPath("~/Views/Templates/HTML_Temp.htm")) %>
    

    【讨论】:

      【解决方案3】:

      使用#include

      将一些 HTML 内容放入包含页面的最简单方法是使用带有#include 的服务器包含:

      <!-- #include file="../Templates/HTML_Temp.htm" -->
      // for relative paths
      

      <!-- #include virtual="/Views/Templates/HTML_Temp.htm" -->
      // for virtual paths
      

      Asp.net 到 2.0 的更好方法

      更好的方法当然是将您的 HTML 文件重命名为 ASCX 并创建一个没有任何特定功能的通用 CS 文件。对所有新创建的 ASCX 文件使用相同的 CS 文件(类关系)。

      Asp.net 2.0 及更高版本的更好方法

      创建一个包含常见内容的母版页(或多个母版页;如果您使用的是 3.0 或更高版本,它们也可以嵌套)并在母版之上开发其他页面。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多