溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

webControls與客戶端腳本路徑

發(fā)布時(shí)間:2020-07-24 13:41:02 來(lái)源:網(wǎng)絡(luò) 閱讀:225 作者:張立達(dá) 欄目:網(wǎng)絡(luò)安全

網(wǎng)上有用的資料不多,在一本電子書(shū)中摘抄了內(nèi)容如下

webControls與客戶端腳本路徑

webControls與客戶端腳本路徑

   

webControls配置節(jié)只有一個(gè)clientScriptsLocation屬性,此屬性用于指定ASP.NET客戶端腳本的默認(rèn)存放路徑。這些文件是包含在HTML代碼生成的ASPX頁(yè)面時(shí)這些需要的客戶端功能,如智能導(dǎo)航和客戶端控件驗(yàn)證。

<webControls clientScriptsLocation="/aspnet_client/{0}/{1}/"/>

上述代碼就是<webControls>的默認(rèn)內(nèi)容。clientScriptsLocation的內(nèi)容就是用于搜索被包含的腳本。aspnet_client文件夾是當(dāng)你安裝ASP.NET是在Web服務(wù)器的跟目錄下自動(dòng)生成的。兩個(gè)占位符用于代表子文件夾的名字,這個(gè)名字有可能在將來(lái)的ASP.NET版本中會(huì)更改。第一個(gè)占位符總是設(shè)置成system_web。第二個(gè)占位符是.NET Framework的版本號(hào)。

ASP.NET 4不使用這個(gè)文件夾來(lái)儲(chǔ)存客戶端腳本文件。實(shí)際上客戶端腳本文件以資源的形式嵌入到system.web程序集中。并且通過(guò)webresource.axd HTTP handler注入到頁(yè)面中。

你可以使用客戶端腳本文件夾來(lái)保存給自定義的ASP.NET控件使用的腳本文件。

感覺(jué)這個(gè)真的已經(jīng)被廢棄了,并且在.NET Framework4.6的源碼中查看webControlsSection類時(shí)也沒(méi)發(fā)現(xiàn)有任何代碼對(duì)這個(gè)類進(jìn)行調(diào)用了,鄙人嘗試過(guò)在一個(gè)WebForm頁(yè)面中拖了一個(gè)驗(yàn)證控件RequiredFieldValidator,在生成的html代碼中多了兩個(gè)js腳本的引用

webControls與客戶端腳本路徑

可以得出已經(jīng)把腳本文件嵌入到程序集里面,通過(guò)webresource.axd來(lái)獲取到對(duì)應(yīng)的資源。實(shí)際上這里可嵌入的資源不單指js了,還可以是圖片文件。

出于好奇我就看了一下RequiredFieldValidator的代碼,

發(fā)現(xiàn)里面有一行代碼是把js文件注冊(cè)進(jìn)去

webControls與客戶端腳本路徑

于是自己也嘗試了一下

webControls與客戶端腳本路徑

ClientScript是ClientScriptManager的一個(gè)實(shí)例,js的文件名是js2.js,前面需要附帶設(shè)這個(gè)程序集的默認(rèn)命名空間 這里用到的,js2.js文件是放在網(wǎng)站根目錄下。

webControls與客戶端腳本路徑

文件 的屬性是這樣設(shè)置

webControls與客戶端腳本路徑

運(yùn)行了頁(yè)面看看生成的html多了一個(gè)js的引用

webControls與客戶端腳本路徑

疑惑的是為啥ValidatorBase里面的嵌入js時(shí)不需要用到不需要命名空間,MSDN上的例子也是中規(guī)中矩地加上了命名空間。難道還有別的方式給它加命名空間?

但是還是有點(diǎn)不服氣,看看原有的aspnet_client怎么弄出來(lái),后來(lái)又發(fā)現(xiàn)了通過(guò)aspnet_regiis,可以添加aspnet_client。嘗試了確實(shí)可以加,但是沒(méi)啥效果,當(dāng)初還猜想會(huì)不會(huì)是配置文件的webControls配置會(huì)影響生成文件夾的名字,后來(lái)發(fā)現(xiàn)我的猜想錯(cuò)了,還是生成aspnet_client。看來(lái)還是在.NET 1.0版本中使用,后續(xù)版本就換用webresource.axd。而且現(xiàn)在也用ASP.NET MVC,這個(gè)屬于在webForm中使用,現(xiàn)在鄙人還是感覺(jué)把js放出來(lái)不嵌入到程序集里面還是不方便,修改了js又要編譯代碼。


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI