原创代码申请落伍,asp.net中实现html格式生成.(zt)

最近在做政府门户时用最简单的方法实现了对url的改写成html格式,下面我把代码贴出来,供参考.
using System;
using System.Web;
using System.Web.Caching;
using System.Web.Security;
using System.Text.RegularExpressions;
using System.Web.SessionState;

namespace DXWeb
{
        /// <summary>
        /// URL 重写
        /// </summary>
        public class UrlReWrite : IHttpHandler ,IRequiresSessionState
        {
                /// <summary>
                /// 通过实现 IHttpHandler 接口的自定义 HttpHandler 启用 HTTP Web 请求的处理。
                /// </summary>
                /// <param name="context">HttpContext 对象,它提供对用于为 HTTP 请求提供服务的内部服务器对象(如 Request、Response、Session 和 Server)的引用。 </param>
                public void ProcessRequest(HttpContext Context)
                {
                        try
                        {
                                int type = 0;

                                string Url = Context.Request.Url.AbsolutePath;

                                Url = Url.Substring(Url.LastIndexOf("/") + 1,Url.Length - Url.LastIndexOf("/") - 1);
                                Url = Url.Substring(0,Url.IndexOf(".")).ToLower();

                                //如果第1位是f则指明是栏目页
                                if (Url.Substring(0,1) == "f")
                                {
                                        Url = Url.Substring(1,Url.Length - 1);
                                        type = 1;
                                }
                                else if (Url.Substring(0,1) == "n")//新闻
                                {
                                        Url = Url.Substring(1,Url.Length - 1);
                                        type = 2;
                                }
                                else if (Url.Substring(0,1) == "v")//视频
                                {
                                        Url = Url.Substring(1,Url.Length - 1);
                                        type = 3;
                                }
                                else if (Url.Substring(0,1) == "s")//网上办事
                                {
                                        Url = Url.Substring(1,Url.Length - 1);
                                        type = 4;
                                }
                                else if (Url.Substring(0,1) == "z")//办事指南
                                {
                                        Url = Url.Substring(1,Url.Length - 1);
                                        type = 5;
                                }

                                //检查文件名是否数字
                                if (Common.CheckInput(Url,"^[1-9][0-9]{0,9}$"))
                                {
                                        foreach (string key in Context.Request.QueryString.AllKeys)
                                                Url += "&" + key + "=" + Context.Request.QueryString[key];

                                        if (type == 1)
                                                Context.Server.Execute("Navigate.aspx?id=" + Url);
                                        else if (type == 2)
                                                Context.Server.Execute("News.aspx?id=" + Url);
                                        else if (type == 3)
                                                Context.Server.Execute("ShowVideo.aspx?id=" + Url);
                                        else if (type == 4)
                                                Context.Server.Execute("Service.aspx?id=" + Url);
                                        else if (type == 5)
                                                Context.Server.Execute("ShowService.aspx?id=" + Url);
                                }
                                else
                                {
                                        //否则查看硬盘是否有此文件

                                }
                                
                        }
                        catch// (Exception ex)
                        {
                                //Context.Response.Write(ex.Message);
                        }
                }

                /// <summary>
                /// 获取一个值,该值指示其他请求是否可以使用 IHttpHandler 实例。
                /// </summary>
                public bool IsReusable
                {
                        get
                        {
                                return false;
                        }
                }
        }
}
大概思路是调用IHttpHandler接口将原来的ulr输入缓存l转换成html格式后输出,当然需要iis支持.如果有用的到的可以供参考,也可以加我msn和我讨论:lodge55@hotmail.com.大家可以先查看IHttpHandler属性,详细的我们可以讨论.

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5

发表评论

评论内容 (必填):