65.9K
CodeProject 正在变化。 阅读更多。
Home

ASP .NET 中的自定义文件扩展名 - 简单易管理的方法

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.19/5 (4投票s)

2008 年 5 月 30 日

CPOL

2分钟阅读

viewsIcon

21225

可以非常轻松地创建自定义文件扩展名,例如 Default.sample,而无需配置 IIS。

引言

在 ASP .Net 页面中创建自定义文件扩展名非常容易。在学习和不断更新自己对 Microsoft 不断在 .NET Framework 中实施的众多更改的过程中,这可能是最容易实现的技术之一。然而,这也一直是许多人困惑的根源,部分原因是关于此主题的大多数教程都涉及到在 IIS 中添加映射。但是,还有其他方法吗?也许您不想摆弄 IIS 设置,或者您根本没有设置 IIS。

使用代码

本教程讨论了一种非常简单的技术,用于在您的 Web 应用程序中实现自定义文件扩展名(例如 default.sample 或 default.ecubicle)。 提出了一个逐步解决方案,然后进行讨论。

逐步操作

a) 通过右键单击 Web 应用程序的“添加新项目”节点,向您的项目添加一个新类。 将该类命名为

b) 该类必须实现 IHTTPHANDLER 接口。 因此,类的定义应如下所示

Public Class Class1 Implements IHttpHandler

c) Visual Studio 将自动使用 IsReusable 属性和 ProcessRequest 方法填充源。

Public ReadOnly Property IsReusable() As Boolean _
                          Implements System.Web.IHttpHandler.IsReusable
Get
End Get
End Property

Public Sub ProcessRequest(ByVal context As System.Web.HttpContext) _
                          Implements System.Web.IHttpHandler.ProcessRequest 
End Sub 

d) 将以下代码添加到 PrcessRequest

context.Server.Transfer("~/Default2.aspx") 


e) 在 IsReusable 属性的 Get 部分添加以下代码

Return False 

f) 在 Web.Config 文件中,找到 <httphandlers> 部分并添加此代码。 自定义扩展名是您希望使用的任何扩展名。

<add verb="*" type="Class1" path="*.customextension"/> 

g) 现在,创建一个 default2.aspx。 这个 default2.aspx 是您的主页,您可以在这里做任何您想做的事情。

h) 最后,添加一个名为 default.customextension 的空白 Web 窗体,并通过转到 WebSite -> 启动选项并选择此页面将此窗体设置为您网站的启动页。 您无法通过右键单击它将其设置为网站的启动页,因为该文件的扩展名不是 .ASPX。 但是,您可以通过转到网站 -> 启动选项并选择 default.customextension 页面来完成此操作。

解释

这段代码的作用是实现 HTTPHANDLER 接口并拦截对我们在 web.config 文件中定义的自定义扩展名的任何请求。 一旦完成,我们的 ProcessRequest 方法就会调用 server.transfer 将请求重定向到另一个页面。 服务器对象的 transfer 方法是关键,因为如果我们使用 Response.Redirect,用户就可以在浏览器的地址栏中看到文件名(在本例中以 .aspx 结尾)。

© . All rights reserved.