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






1.19/5 (4投票s)
可以非常轻松地创建自定义文件扩展名,例如 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 结尾)。