網上有用的資料很少,在一本電子書中摘抄了內容以下 html
webControls配置節只有一個clientScriptsLocation屬性,此屬性用於指定ASP.NET客戶端腳本的默認存放路徑。這些文件是包含在HTML代碼生成的ASPX頁面時這些須要的客戶端功能,如智能導航和客戶端控件驗證。web
<webControls clientScriptsLocation="/aspnet_client/{0}/{1}/"/> 服務器
上述代碼就是<webControls>的默認內容。clientScriptsLocation的內容就是用於搜索被包含的腳本。aspnet_client文件夾是當你安裝ASP.NET是在Web服務器的跟目錄下自動生成的。兩個佔位符用於表明子文件夾的名字,這個名字有可能在未來的ASP.NET版本中會更改。第一個佔位符老是設置成system_web。第二個佔位符是.NET Framework的版本號。 網站
ASP.NET 4不使用這個文件夾來儲存客戶端腳本文件。實際上客戶端腳本文件以資源的形式嵌入到system.web程序集中。而且經過webresource.axd HTTP handler注入到頁面中。 ui
你可使用客戶端腳本文件夾來保存給自定義的ASP.NET控件使用的腳本文件。 spa
感受這個真的已經被廢棄了,而且在.NET Framework4.6的源碼中查看webControlsSection類時也沒發現有任何代碼對這個類進行調用了,鄙人嘗試過在一個WebForm頁面中拖了一個驗證控件RequiredFieldValidator,在生成的html代碼中多了兩個js腳本的引用3d
能夠得出已經把腳本文件嵌入到程序集裏面,經過webresource.axd來獲取到對應的資源。實際上這裏可嵌入的資源不單指js了,還能夠是圖片文件。 orm
出於好奇我就看了一下RequiredFieldValidator的代碼, htm
發現裏面有一行代碼是把js文件註冊進去 blog
因而本身也嘗試了一下
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又要編譯代碼。