2010-02-23 46 views
5

這是一個新手問題(我確定它是)。我已經嘗試了第一次在一個ASP.NET的Web應用程序中,我正在研究如果我在瀏覽器中禁用Javascript(我主要使用Firefox進行測試)會發生什麼。是否啓用JavaScript中的瀏覽器必須得到工作的ASP.NET頁面?

結果:儘管我沒有寫過任何單行的Javascript,但我的應用程序已完全損壞。

例如:我在LoginStatus控件的頁面上有一個鏈接按鈕。看着我的瀏覽器生成的HTML代碼,我看到這一點:

<a id="ctl00_ctl00_LoginStatus" href="javascript:__doPostBack('ctl00$ctl00$LoginStatus$ctl02','')">Login</a> 

與ListView控件的一些鏈接按鈕,允許進行排序的某些數據字段列表相似:產生錨標記的href包含此: javascript:WebForm_DoPostBackWithOptions(...)

因此,如果未啓用Javascript,則單擊「登錄」或嘗試排序不起作用。

這是不是意味着:在瀏覽器中禁用Javascript ASP.NET應用程序無法正常工作?或者我需要做些什麼才能讓應用程序使用禁用的Javascript?

感謝您的反饋!

+0

這是ASP.NET Web Forms,它非常古董。這使你無法控制呈現的HTML和JavaScript。爲了完全控制所有的HTML和JavaScript,你可以使用ASP.NET MVC。 – bzlm 2010-02-23 17:52:09

+1

@bzlm「古董」在「積極維護,即將推出一個重大新版本」的感覺? – bdukes 2010-02-23 18:17:09

+0

@bdukes在TechEd的技術主題演講中,有一個COBOL演示,展示了VS 2010中新的COBOL支持(通過第三方)。不會讓COBOL變得古色古香。 :) http://graysmatter.codivation.com/post/WebForms-The-Whining-Continues.aspx – bzlm 2010-02-23 18:52:47

回答

5

有些東西會起作用,有些不會(請參閱here)。這並不是說你不能在沒有Javascript的情況下使用ASP.NET,你只需要避免下面提到的控件(我敢肯定還有很多第三方控件)。

依賴於能夠運行客戶端腳本的ASP.NET服務器控件包括:

  • LinkBut​​ton的和HtmlButton服務器控件需要腳本。 (這不適用於Button Web服務器控件或HtmlInputButton或HtmlInputImage控件。)
  • 默認情況下,Calendar控件使用LinkBut​​ton控件實現月份導航和日期選擇。如果您將控件屬性設置爲允許用戶選擇一天,一週或一個月,或者如果允許用戶導航到其他月份,則Calendar控件將生成客戶端腳本。如果您只使用日曆控件來顯示一個沒有選擇或導航的月份,則該控件不需要客戶端腳本。
  • 其AutoPostBack屬性設置爲true的任何Web服務器控件;客戶端腳本是必需的,以便控件將發佈頁面。
  • Web驗證控件,需要客戶端腳本來支持客戶端驗證。如果客戶端不支持腳本,驗證將僅在服務器上運行。
+0

謝謝,這確實是一件重要的事情要知道!這對我來說是新的。 – Slauma 2010-02-23 18:19:17

4

除非切換到ASP.NET MVC框架,否則使用Web表單模型構建的ASP.NET網站需要JavaScript。

啓用了autopostback的元素,任何linkbutton控件或button控件,並且任何客戶端驗證都將停止運行,如您所發現的。

相關問題