webControls與客戶端指令碼路徑

2021-09-07 08:06:00 字數 1759 閱讀 2605

網上有用的資料不多,在一本電子書中摘抄了內容如下

webcontrols配置節只有乙個clientscriptslocation屬性,此屬性用於指定asp.net客戶端指令碼的預設存放路徑。這些檔案是包含在html**生成的aspx頁面時這些需要的客戶端功能,如智慧型導航和客戶端控制項驗證。

上述**就是

的預設內容。clientscriptslocation的內容就是用於搜尋被包含的指令碼。aspnet_client資料夾是當你安裝asp.net是在web伺服器的跟目錄下自動生成的。兩個佔位符用於代表子資料夾的名字,這個名字有可能在將來的asp.net版本中會更改。第乙個佔位符總是設定成system_web。第二個佔位符是.net framework的版本號。

asp.net 4不使用這個資料夾來儲存客戶端指令碼檔案。實際上客戶端指令碼檔案以資源的形式嵌入到system.web程式集中。並且通過webresource.axd http handler注入到頁面中。

你可以使用客戶端指令碼資料夾來儲存給自定義的asp.net控制項使用的指令碼檔案。

感覺這個真的已經被廢棄了,並且在.net framework4.6的原始碼中檢視webcontrolssection類時也沒發現有任何**對這個類進行呼叫了,鄙人嘗試過在乙個webform頁面中拖了乙個驗證控制項

requiredfieldvalidator

,在生成的html**中多了兩個js指令碼的引用

可以得出已經把指令碼檔案嵌入到程式集裡面,通過webresource.axd來獲取到對應的資源。實際上這裡可嵌入的資源不單指js了,還可以是檔案。

出於好奇我就看了一下

requiredfieldvalidator的**,

發現裡面有一行**是把js檔案註冊進去

於是自己也嘗試了一下

clientscript是clientscriptmanager的乙個例項,js的檔名是js2.js,前面需要附帶設這個程式集的預設命名空間 這裡用到的,js2.js檔案是放在**根目錄下。

檔案的屬性是這樣設定

執行了頁面看看生成的html多了乙個js的引用

疑惑的是為啥validatorbase裡面的嵌入js時不需要用到不需要命名空間,msdn上的例子也是中規中矩地加上了命名空間。難道還有別的方式給它加命名空間?

但是還是有點不服氣,看看原有的aspnet_client怎麼弄出來,後來又發現了通過aspnet_regiis,可以新增aspnet_client。嘗試了確實可以加,但是沒啥效果,當初還猜想會不會是配置檔案的webcontrols配置會影響生成資料夾的名字,後來發現我的猜想錯了,還是生成aspnet_client。看來還是在.net 1.0版本中使用,後續版本就換用webresource.axd。而且現在也用asp.net mvc,這個屬於在webform中使用,現在鄙人還是感覺把js放出來不嵌入到程式集裡面還是不方便,修改了js又要編譯**。

webControls與客戶端指令碼路徑

網上有用的資料不多,在一本電子書中摘抄了內容如下 webcontrols配置節只有乙個clientscriptslocation屬性,此屬性用於指定asp.net客戶端指令碼的預設存放路徑。這些檔案是包含在html 生成的aspx頁面時這些需要的客戶端功能,如智慧型導航和客戶端控制項驗證。上述 就是...

使用tcp select實現客戶端與客戶端的通訊

使用多路復用實現客戶端與客戶端進行通訊 原理 客戶端只要一連上伺服器,立馬給伺服器傳送使用者名稱,然後在服務端將newsocketfd 存放在同乙個結構體中,客戶端先給伺服器傳送資料,然後通過伺服器 給客戶端。伺服器先會查詢對應名字的 newsocketfd 然後向該 newsocketfd 中寫入...

瘦客戶端 胖客戶端 智慧型客戶端

胖客戶端模式將應用程式處理分成了兩部分 由使用者的桌面計算機執行的處理和最適合乙個集中的伺服器執行的處理。乙個典型的胖客戶端包含乙個或多個在使用者的pc上執行的應用程式,使用者可以檢視並運算元據 處理一些或所有的業務規則 同時提供乙個豐富的使用者介面做出響應。伺服器負責管理對資料的訪問並負責執行一些...