2012-04-12 65 views
0

我正在使用ASP.NET 3.5 Web窗体。
我已将我的站点路径存储在web.config中,并添加了名为“CommonPath”的键。
现在我有一个简单的html页面,并且希望在这个静态html页面上使用这个键。 那么我该如何做到这一点?或者有没有其他办法呢?如何阅读.html页面中的web.config设置?

在此先感谢

+1

您不能将静态页面更改为浮动页面吗? – Ramesh 2012-04-12 06:02:12

+0

没有。它只是html页面。 – 2012-04-12 06:03:45

+3

那么,您是否在使用错误的工具进行工作,并询问我们如何解决这个问题?如果您需要动态内容,则需要使用可生成动态内容的文件类型。您可以使用路由来“伪造”表单。 – 2012-04-12 06:12:04

回答

2

我过去做过的事情是将“.html”页面注册为动态页面。 (就像ASPX一样)。

这可以通过您的 “web.config” 文件来完成:

.... 
<system.web> 
    <compilation ...> 
     <buildProviders> 
      <add extension=".html" 
       type="System.Web.Compilation.PageBuildProvider" /> 
     </buildProviders> 
    .... 

.... 
<system.webServer> 
    <handlers> 
     <remove name="WebServiceHandlerFactory-Integrated" /> 
     <add name="PageHandlerFactory-Integrated-HTML" path="*.html" 
      verb="GET,HEAD,POST,DEBUG" type="System.Web.UI.PageHandlerFactory" 
      resourceType="Unspecified" preCondition="integratedMode" /> 
    </handlers> 
.... 

由于Robert指出,这个效果很好用IIS 7和IIS 7.5(也可能在以上版本)。如果您使用IIS 6,则必须通过IIS管理控制台执行此操作。

+0

你忘了提及这只适用于IIS 7+(这种方式)。在IIS 6上,必须添加新的ISAPI筛选器才能完成相同的任务。 – 2012-04-12 06:42:22

+0

谢谢,@RobertKoritnik我会添加你的信息。 – 2012-04-12 07:22:57

1

按照拉梅什和安德鲁·巴伯的意见:最好的办法是重新命名.html文件为.aspx,让ASP.NET将处理它,而不是仅仅IIS返回静态文件。将简单的重定向永久规则添加到您的Web服务器以处理传统流量。如果您必须按原样保留.html文件,则可以添加重写规则(如果已安装IIS重写模块),将.html文件指向.aspx文件而不需要任何人知道;或者,也可以使用ASP.NET路由来实现相同的效果。

+0

+1这是我推荐的实用方法。 – 2012-04-12 06:43:13