asp.net 内部重定向

1.

        /*
         * 2、
         * Context.RewritePath()
         * 使用给定路径重写 URL。(内部重写)
         * 内部请求重写
         */
        public static void TestTwo()
        {
            //带有参数 处理
            //http://localhost:49796/testtwo/{id}
            string result = "";
            if (Contains(AbsolutePath, @"testtwo/\d+$", out result))
            {
                RewritePath(GetVirtualPath("~/test/testone.aspx?id=" + GetIntStr(result)));
            }

            //没有参数
            //http://localhost:49796/testtwo{*catchall}
            if (AbsolutePath.Contains("testtwo"))
            {
                RewritePath(GetVirtualPath("~/test/testone.aspx"));
            }
        }
        /*
         * 3、
         * Context.RewritePath()
         * 使用给定路径重写 URL。(内部重写)
         * 内部请求执行转移
         */
        public static void TestThree()
        {
            //带有参数 处理
            //http://localhost:49796/testtwo/{id}/{name}/
            string result = "";
            if (Contains(AbsolutePath, @"testthree/\d+/\w+/$", out result))
            {
                result = result.Replace("testthree","");
                _Server.Transfer("~/test/testone.aspx?id=" + GetIntStr(result) + "&name=" + GetStringStr(result));
            }

            //没有参数
            if (AbsolutePath.Contains("testthree"))
            {
                _Server.Transfer("~/test/testone.aspx");
            }
        }

正则匹配

        //判断 制定的字符串 在源字符串中是否匹配
        //返回 第一个匹配项
        private static bool Contains(string source, string target, out string firstMatch)
        {
            firstMatch = "";

            Match result = Regex.Match(source, target, RegexOptions.IgnoreCase | RegexOptions.Singleline);
            if (result.Success)
            {
                firstMatch = result.Value;
                return true;
            }
            return false;
        }

        //获取字符串中的第一个数字字符匹配项
        private static string GetIntStr(string source)
        {
            Match result = Regex.Match(source, @"(\d+)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
            if (result.Success)
            {
                return result.Value;
            }
            return "";
        }
        //获取字符串中 第一个字符串匹配项
        private static string GetStringStr(string source)
        {
            Match result = Regex.Match(source, @"([a-z_]+)", RegexOptions.IgnoreCase | RegexOptions.Singleline);
            if (result.Success)
            {
                return result.Value;
            }
            return "";
        }

2.两张图片对比区别

时间: 2024-10-26 03:32:57

asp.net 内部重定向的相关文章

ASP报告内部错误,查看日志报告“不允许的父路径”

问题 ASP报告内部错误,查看日志报告“不允许的父路径” 解决方案 当访问Pleskwin上的asp站点时候,报告内部服务器错误.这是一种通常常见的标准信息,需要去查看日志方可确定问题来源. 点击自己的站点,选择“日志管理器”,查看当天最新的日志.从日志中可以看到index.asp第xx行报错:“不允许的父路径” 这是因为,微软为了改善windows的安全性,从windows2003的iis6起做了很多改动这些改动有些从一定程度上确实改善了安全性,而另外一些实则严重影响了程序的正常允许这里遇到的

详细介绍ASP.NET页面重定向方法

ASP.NET中页面重定向的使用的很频繁,实现方法也有不同,自己也试过几种,现在总结一下. 一.Transfer Execute Redirect重定向方法介绍 1.Server.Transfer方法:  Server.Transfer("m2.aspx"); //页面转向(服务器上执行).服务器停止解析本页,保存此页转向前的数据后,再使页面转向到m2.aspx, 并将转向前数据加上m2.aspx页结果返回给浏览器. 2.Server.Execute方法:  Server.Execut

【回味无穷】ASP.NET内部控件

ASP.NET引入一组称为"内部控件"的新控件,它们专门用于ASP.NET.内部控件的使用方法与HTML控件相同,他们映射到HTML元素并通过使用runat="server"属性在服务器上执行.内部控件和HTML控件的显示格式是不一样的,HTML控件书写如下: <input type="checkbox">    <input type="radio">; 而内部控件的书写格式如下: <asp:c

ASP.Net内部处理机制

一.IIS服务器根据请求的文件的后缀名来确定如何处理这个请求.例如.html,或.js,或.aspx…服务器获取所请求的页面的后缀名后,在服务器端寻找可以处理这类后缀名的应用程序,如果IIS找不到可以处理此类文件的应用程序,并且这个文件也没有受到服务器端的保护(一个受保护的例子就是App_Code中的文件,一个不受保护的例子就是你的js脚本),那么IIS就直接把这个文件返回给客户端. 如果服务器找到了处理此类文件的应用程序,通常称为ISAPI(Internet Server Applicatio

ASP.NET - 网页重定向 Response.Redirect()

在网页中使用重定向,意思就是在网站中的某一个页面跳转到另一个页面. Response.Redirect(~/abc.aspx); 使用“~”的作用是可以从任意位置跳转. 如果没有“~”,那么跳转的时候,只会在同一级目录下搜索.

asp.net内部原理

请求-处理-响应 表单提交的Form里的action属性设置提交的页面:为了在服务端提取出表单项的值,需要在HTML中为表单元素设定name属性, 如服务端处理的信息context.Request["username"]来根据表单项的name来获得提交的属性值 checkbox没有选中时为null,选中时为on select name属性指定option的value值 radio name属性选中的value值提交给服务器 method="get"与method=&

asp.net内置对象Server

1.Server是Context的一个属性,是HttpServerUtility类的一个对象. 2.Server.HtmlDecode(),Server.HtmlEncode(),Server.UrlEncode(),Server.UrlDecode()是对HttpUtility类中相应方法的一个代理调用.有的时候很难拿到Server对象,使用HttpUtility. 3.Server.Transfer(path)内部重定向请求,Server.Transfer("hellow.aspx"

ASP.NET中的Request、Response、Server对象

Request对象 Response.Write(Request.ApplicationPath) //应用根路径Request.AppRelativeCurrentExecutionFilePath //当前执行请求相对于应用根目录的虚拟路径,以-开头Request.PhysicalApplicationPath //当前应用的物理路径,如 D:\TEST\WEBRequest.PhysicalPath //当前请求的物理路径,如 D:\TEST\WEB\a.aspxRequest.RawUr

Asp.Net 初级 高级 学习笔记

本文并非作者原创,但是作者发表! 不知道十年后,会用多少人收益我的文章,哈哈! 各位,来加个关注![注*]改文章总结了ASP.Net从入门到高级的知识! 朱磊:2012 - 0212 -------------- [朱磊是本文的原创大神,据说当年在黑马刚毕业,月薪税前1W]-------------01.Main函数是什么?在程序中使用Main函数有什么需要注意的地方?02.CLR是什么?程序集是什么?当运行一个程序集的时候,CLR做了什么事情?03.值类型的默认值是什么?(情况一:字段或全局静