asp.net Url重写学习
1.通过RewritePath实现重写
URL重写可以通过编程的方式来实现。ASP.NET中的Contex.RewritePath()方法可以让你从程序中实现重写请求的URL。一旦重写后,系统将使用新的路径来继续执行这个请求。
在Global.asax文件的Application_BeginRequest()方法中,你需要增加代码来阅读进来的路径,然后根据一个或多个URL重写规则来成需要进一步处理的路径。下面的例子执行以下URL重写规则:
输入的url:"/URLRewriting/OldUrl.aspx 真实访问的url:"/URLRewriting/NewUrl.aspx"
输入的url:"/URLRewriting/UserAccount/{UserId}.aspx 真实访问的url:"/URLRewriting/UserAccount.aspx?id={UserID}
使用Contex.RewritePath()实现URL重写:
void Application_BeginRequest(object sender, EventArgs e)
{
string path=Request.Url.ToString();
if(Regex.IsMatch(path,"WebTest/(.+).aspx",RegexOptions.IgnoreCase))
{
String idString = path.Substring(path.LastIndexOf('/') + 1, path.Length - path.LastIndexOf('/') - 6);
Context.RewritePath("Default.aspx?id=" + idString);
}
else if(Regex.IsMatch(path, "/URLRewriting/OldUrl.aspx",RegexOptions.IgnoreCase))
{
Context.RewritePath("/URLRewriting/NewUrl.aspx");
}
}
在这个例子中,每次一个新的请求被处理的时候,它将首先查看这个Application_BeginRequest()。通过使用Request.Url属性来获得输入的URL路径,然后通过正则表达式来应用网站URL重写规则,匹配到期望的输入网址后,将它们重写成你希望转向的网址。
当重写规则比较简单且规模比较小的时候,使用Context.RewritePath() 方法以编程的方式重写URL效果比较不错,但是一些大型网站通常有非常多的URL重写规则。手工方式对所有这些重写规则进行编程可能是一件麻烦且容易出错的方法。
一个更好的解决方法是从web.config文件中使用一个HttpModule(http模块)来动态的处理URL重写规则。更令人高兴的是,你无需自己动手来编写HttpModule来处理这些任务,已经有几个非常不错的免费版供你使用。以下是其中几个:URLRewriting.Net ,URLRewriter.Net ,Rewrite.Net 。
2.使用URLRewriting.Net重写Url(
相关文档:
ASP.NET MVC 入门2、项目的目录结构与核心的DLL
收藏
< type="text/javascript">
document.body.oncopy = function() {
if (window.clipb ......
在一个
route
中,通过在大括号中放一个占位符来定义
(
{ and } )
。当解析
URL
的时候,符号
"/"
和
"."
被作为一个定义符来解析,而定义符之间的值则匹配到占位
符中。
route
定义中不在大括号中的信息则作为常量值。
下面是一些示例
URL
:
Valid route definitions
Example ......
System.Drawing.Image imgPhoto = System.Drawing.Image.fromFile("图片路径名");
int sourceWidth = imgPhoto.Width; //图片宽度
int sourceHeight = imgPhoto.Height; //图片高度
控件名.PostedFile.ContentLength &n ......
在面试的时候,经常会遇到这样的问题,其实我们会对其中的几种方法比较熟悉,因为项目中经常使用。但是要全面的回答ASP.NET中页面传值的方式,估计往往很难全面。
一.
使用QueryString变量
QueryString是一种非常简单也是使用比较多的一种传值方式,但是它将传递的值显示在浏览器的地址栏中,如果是传递一个或 ......