此配置節(jié)的作用就是往Web程序中添加URL的映射,從而達(dá)到用戶訪問映射后的URL(如/Page/AAA)也能訪問到源URL(如/Page/PageAAA.aspx)的效果。這也是URL映射本來的作用。
詳細(xì)配置如下
其中要啟用這個(gè)URL映射的必須要把enabled設(shè)置成true,add和remove的url都是映射后的URL。
最開始鄙人是在WebForm中嘗試,結(jié)果是成功的;然后擔(dān)心在MVC下已經(jīng)廢棄了,最開始可能是某些原因?qū)е掠成洳涣?,直接說找不到URL,后來估計(jì)打斷點(diǎn)查看一下兩個(gè)應(yīng)用程序(WebForm和MVC)的Application里面都包含了UrlMappingsModule。再接著在MVC下嘗試,也不知啥原因就映射成功了。然而也發(fā)現(xiàn)實(shí)際上這個(gè)URL映射就是ASP.NET的HTTP管道里面的這個(gè)模塊起的作用。
對(duì)于無知的我,讓我去實(shí)現(xiàn)一個(gè)UrlMappingsModuel實(shí)現(xiàn)映射的話,多半會(huì)利用HttpResponse的Redirt通過URL重定向來從表面實(shí)現(xiàn)上達(dá)到這個(gè)URL映射的效果。以前剛開始學(xué)習(xí)ASP.NET的時(shí)候就覺得HttpResponse的Redirt就是頁面跳轉(zhuǎn),了解到Http協(xié)議的時(shí)候才發(fā)現(xiàn)這兩個(gè)還是有區(qū)別的。
先弄一個(gè)重定向的例子,有一個(gè)Action他是重定向到另一個(gè)Action——HelloWorld里面
當(dāng)訪問這個(gè)RedHelloWorld的時(shí)候,通過谷歌的開發(fā)者工具看到網(wǎng)絡(luò)請(qǐng)求是這樣子的
頁面最終是訪問到HelloWorld??墒沁@并非是請(qǐng)求RedHelloWorld的響應(yīng),其響應(yīng)如上圖,狀態(tài)碼302表示重定向,通過Location里面的"/Home/HelloWorld&q