当前位置: 首页 > 编程笔记 >

ASP.NET中Global和URLReWrite用法

雷浩思
2023-03-14
本文向大家介绍ASP.NET中Global和URLReWrite用法,包括了ASP.NET中Global和URLReWrite用法的使用技巧和注意事项,需要的朋友参考一下

本文实例讲述了ASP.NET中Global和URLReWrite用法。分享给大家供大家参考。具体如下:

Global.asax:

有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法。你可以使用这个文件实现应用程序安全性以及其它一些任务。

重点了解:application_Start; application_BeginRequest; application_Error;

① application_Start:自从服务器启动起来,网站第一次被访问的时候Application_Start执行
② Application_Error :程序中发生未处理异常
③ Session_End:只有进程内的Session才会调用,session_End进程外的Session不会
④ application_BeginRequest:当一个请求过来的时候,便会调用application_BeginRequest,访问静态页面时application_BeginRequest不会处理,IIS直接将静态页面文件给了浏览器。即使访问一个不存在的页面,Application_BeginRequest方法也会被调用。

URLReWrite:

丑链接:http://localhost/viewPerson.aspx?id=1

很丑!处女座不能忍。

帅链接:http://localhost/viewPerson-1.aspx

怎么整成帅链接那样的?

利用application_BeginRequest无论访问什么页面,除了静态页面,都转向其他程序处理的原理。

使用正则表达式对【丑链接】进行匹配,当用户访问http://localhost/viewPerson-1.aspx的时候,会触发global.asax调用application_BeginRequest方法,正则表达式匹配成功后,执行Context.RewritePath("/ViewPerson.aspx?id=" + id); 搞定,整成【帅链接】,就这么简单。

使用正则表达式:

protected void Application_BeginRequest(object sender, EventArgs e)
{
  Match match = Regex.Match(Context.Request.Path, @"^/ViewPerson\-(\d+)\.aspx$");
  if (match.Success)
  {
 string id = match.Groups[1].Value;//拿到(\d+)就是id 的值 
 Context.RewritePath("/ViewPerson.aspx?id=" + id);
  }
}

希望本文所述对大家的asp.net程序设计有所帮助。

 类似资料:
  • 我试图在一个TypeScript项目中使用带有Webpack2的Globalize库。typescript/Webpack 2安装程序已经运行,但是,在导入和访问Globalize时,我在运行Webpack时收到以下错误消息: 因此,我尝试安装的global类型: 现在我得到以下错误: 不出所料,这对我来说都是非常新的。不知道我是否应该检查网络包、打字、全球化或打字稿... 这是我的包裹。json

  • Methods caseSensiveFileExits() 大小写敏感的文件路径判断,fs 没有提供更直接的 API,只能通过 list 接口来判断。 Source: file.js, line 114

  • 获取全局变量的值。包括PHP的超全局变量和其他PHP代码使用global关键词声明的全局变量。 PHPX_FUNCTION(cpp_test) { //相当于 $_GET auto a = global("_GET"); //相当于 global $config auto b = global("config"); var_dump(a); var_

  • Members <constant> LogLevelType :Number 日志等级类型. Type: Number Properties: Name Type Default Description None Number 0 禁止输出日志 All Number 4294967295 输出全部的日志 Debug Number 1 输出调试日志 Log Number 2 输出基本日志 Warn

  • global 属性 RegExp 对象是否具有标志 g。 定义和用法: global 属性用于返回正则表达式是否具有标志 "g"。 它声明了给定的正则表达式是否执行全局匹配。 如果 g 标志被设置,则该属性为 true,否则为 false。 语法: RegExpObject.global 示例: var regexp1 = /(^\s*)|(\s*$)/, regexp2 =

  • 描述 (Description) global是RegExp对象的只读布尔属性。 它指定特定正则表达式是否执行全局匹配,即是否使用“g”属性创建。 语法 (Syntax) 其语法如下 - RegExpObject.global 返回值 (Return Value) 如果设置“g”修饰符则返回“TRUE”,否则返回“FALSE”。 例子 (Example) 请尝试以下示例程序。 <html>

  • 描述: 记录一个全局对象。 Overview(概述) @global标签指定一个在文档的标识是为全局性的标识。JSDoc忽略这个标识在源文件中的实际作用范围。这个标记是在本地所定义标识时特别有用。 Examples(例子) 使用@global标签来指定一个标识应记录为全局。 例如,文档中的内部变量作为一个全局变量: (function() { /** @global */ var

  • 概要 <#global name=value> 或 <#global name1=value1 name2=value2 ... nameN=valueN> 或 <#global name> capture this </#global> 这里: name:变量的名称。 它不是表达式。但它可以被写作是字符串形式,如果变量名包含保留字符这是很有用的, 比如 <#global "foo-bar