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.两张图片对比区别
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。