自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ASP.NET和URL重寫(xiě)

開(kāi)發(fā) 后端
本文介紹ASP.NET和URL重寫(xiě),以及介紹在ASP.NET 2.0中,有個(gè)比較干凈的訣竅你可以用來(lái)重寫(xiě)<form>控件的action屬性。

在ASP.NET和URL重寫(xiě)處理PostBack

大家在使用ASP.NET和URL重寫(xiě)時(shí)經(jīng)常遇到的一個(gè)疑難雜癥跟處理postback場(chǎng)景有關(guān)。具體地來(lái)說(shuō),當(dāng)你在一個(gè)網(wǎng)頁(yè)上放置一個(gè) <form runat="server"> 控件時(shí),ASP.NET 會(huì)自動(dòng)地默認(rèn)輸出標(biāo)識(shí)的action屬性指向當(dāng)前所在頁(yè)面。當(dāng)使用URL重寫(xiě)時(shí),會(huì)出現(xiàn)這樣的問(wèn)題,<form> 控件顯示的URL不是原先請(qǐng)求的URL(譬如,/products/books),而是重寫(xiě)過(guò)后的URL(譬如,/products.aspx?category=books)。這意味著,當(dāng)你做一個(gè)postback到服務(wù)器時(shí),URL不再是你原先干凈利落的那個(gè)了。

在 ASP.NET 1.0和1.1中,大家經(jīng)常訴諸于繼承<form> 控件生成他們自己的控件,來(lái)正確地輸出要使用的action屬性。雖然這可以工作,但結(jié)果有點(diǎn)亂,因?yàn)檫@意味著你需要更新你所有的頁(yè)面來(lái)使用這個(gè)另外的表單控件,而且有時(shí)在Visual Studio所見(jiàn)即所得設(shè)計(jì)器里也會(huì)遇上問(wèn)題。

好消息是,在ASP.NET 2.0中,有個(gè)比較干凈的訣竅你可以用來(lái)重寫(xiě)<form>控件的action屬性。具體地來(lái)說(shuō),你可利用新的ASP.NET 2.0控件適配器擴(kuò)展架構(gòu)來(lái)定制控件的輸出,用你提供的值來(lái)覆蓋action屬性的值。這不要求在你的.aspx頁(yè)面里做任何編碼改動(dòng),而只要在你的/app_browsers文件夾里添加一個(gè).browser文件,注冊(cè)使用一個(gè)控件適配類即可輸出新的action屬性。

你可在這里查看一個(gè)我創(chuàng)建的樣例實(shí)現(xiàn),其展示了該如何實(shí)現(xiàn)與URL重寫(xiě)協(xié)作的表單控件適配器(Form Control Adapter) 。它在我上面使用的***個(gè)(Request.PathInfo),第二個(gè)方法(UrlRewriter.Net 模塊)中都工作,它使用Request的RawUrl屬性獲取原先沒(méi)改寫(xiě)過(guò)的 URL來(lái)顯示。而在第四個(gè)方法(ISAPIRewrite過(guò)濾器)中,你可以獲取ISAPI過(guò)濾器保存在Request.ServerVariables["HTTP_X_REWRITE_URL"] 中的原先的URL值。

我上面的FormRewriter類實(shí)現(xiàn)在標(biāo)準(zhǔn)的ASP.NET和ASP.NET AJAX 1.0網(wǎng)頁(yè)上應(yīng)該都工作(如果你遇上問(wèn)題的話,告訴我一聲)。
正確地處理CSS和圖像引用

不少人在***次使用URL重寫(xiě)時(shí),有時(shí)會(huì)遇上一個(gè)疑難雜癥,就是他們發(fā)現(xiàn)他們的圖像和CSS樣式表引用有時(shí)會(huì)停止工作。這是因?yàn)樗麄冊(cè)贖TML網(wǎng)頁(yè)里有對(duì)這些文件的相對(duì)引用,當(dāng)你開(kāi)始在應(yīng)用里重寫(xiě)URL時(shí),你需要意識(shí)到瀏覽器經(jīng)常會(huì)在不同的邏輯層次結(jié)構(gòu)層上(logical hierarchy levels)請(qǐng)求文件,而不是實(shí)際存儲(chǔ)在服務(wù)器上的東西。

譬如,如果我們上面的/products.aspx網(wǎng)頁(yè)對(duì).aspx 網(wǎng)頁(yè)里的logo.jpg有一個(gè)相對(duì)引用,但是通過(guò) /products/books.aspx這個(gè)URL來(lái)請(qǐng)求的,那么瀏覽器在顯示網(wǎng)頁(yè)時(shí),將會(huì)發(fā)出一個(gè)對(duì)/products/logo.jpg的請(qǐng)求,而不是對(duì)/logo.jpg的請(qǐng)求。要正確地引用這個(gè)文件,確認(rèn)你用根目錄限定了(root qualify)CSS和圖像引用(“/style.css”,而不是 “style.css”)。對(duì)于ASP.NET控件,你也可以使用“~”句法從你應(yīng)用的根目錄來(lái)引用文件(譬如,<asp:image imageurl="~/images/logo.jpg" runat="server"/>) 。

以上介紹ASP.NET和URL重寫(xiě)希望本文對(duì)你有所幫助

【編輯推薦】

  1. 簡(jiǎn)單介紹ASP應(yīng)用程序
  2. ASP.NET的IScriptControl
  3. 詳解ASP.NET身份驗(yàn)證服務(wù)
  4. 概述ASP.NET安全
  5. ASP.NET ISAPI
責(zé)任編輯:佚名 來(lái)源: IT168
相關(guān)推薦

2009-08-05 14:46:17

ASP.NET url

2009-12-30 14:28:09

ASP.NET Web

2009-08-05 13:16:43

ASP.NET URL

2009-07-27 17:15:51

URL RewriteASP.NET

2009-07-31 09:58:20

URL映射ASP.NET

2009-07-27 12:22:03

ASP.NET和ASPASP.NET入門(mén)教程

2009-07-29 16:08:07

ASP和ASP.NET

2009-07-27 14:46:16

XML和ASP.NET

2009-07-23 16:28:20

URL映射ASP.NET 2.0

2009-07-22 14:23:39

URL RewriteASP.NET

2009-07-22 17:45:35

ASP.NET教程

2009-08-03 14:22:33

什么是ASP.NET

2009-07-28 17:17:19

ASP.NET概述

2009-01-04 13:27:10

URL RewriteIISASP.NET

2009-07-24 10:55:00

asp.net mvc

2009-08-21 10:51:55

ASP.NET Rou解析URL

2009-07-22 18:03:00

ASP.NET ASP

2009-07-21 15:47:19

2009-10-13 14:38:15

.NET重寫(xiě)URL

2009-10-26 15:55:43

URL Routing
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)