爲什麼ASP.NET在<div></div>
內渲染隱藏的__VIEWSTATE
輸入元素?爲什麼__VIEWSTATE隱藏的輸入元素被<div></div>包圍?
回答
他們這樣做是爲了「與Web標準更一致」 - 這裏是從MSDN雜誌文章Enforce Web Standards For Better Accessibility報價:
有一些衆所周知的缺陷在ASP.NET 1.1。開箱即用的控件產生的代碼不會通過驗證。這在很大程度上歸因於ViewState的ASP.NET中的處理方式1.1使用中不含有塊顯示器內隱藏的輸入標籤,就像這樣:
<input type="hidden" name="__VIEWSTATE" value="dDwtMTU1NzQzNDgy..." />
這一點,加上一些其他的語法問題,給ASP.NET 1.1一個不合規格的不幸聲譽。
ASP.NET 2.0解決了許多Web標準問題。例如,如果你看一下ASP.NET 2.0生成的網頁的源代碼,你看到的ViewState現在包裹在一個div標籤,使其符合:<div> <input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="dDwtMTU1NzQzNDgy..." /> </div>
微軟已經衆所周知的那一個ASP.NET 2.0的目標是更符合Web標準,事實上,ASP.NET 2.0允許您創建兼容的Web站點和控件。 Stephen Walther的MSDN®文章「Building ASP.NET 2.0 Web Sites Using Web Standards」是構建合規網站的一個很好的資源。這篇長達78頁的文章詳細介紹了根據Web標準建設網站的情況。
這是否真的與Web標準更加一致是開放的辯論個人我沒有進入Web標準足以作出我自己的意見,我只是回答你問。
好的。其實我還是不明白爲什麼一個''本身不會「通過驗證」。但是非常感謝大家的意見。 – 2012-07-22 10:54:54
我與你在一起 - 也許值得一個單獨的問題,從純Web標準和/或CSS的角度來問。 :)順便說一句,你有upvotes涌入,爲此歡呼! (只有第一個來自我)。 – 2012-07-22 11:42:38
在引用的文章結尾處檢查bio:作者是*不*是ASP.NET團隊的一部分。 – Richard 2012-07-22 14:06:09
- 1. 爲什麼<packaging>元素包括
- 2. 爲什麼Nullable <>不隱藏GetType?
- 3. 爲什麼我的隱藏<tr>沒有真正隱藏?
- 4. 爲什麼隱藏的表單元素仍然被JAWS讀取?
- 5. 爲什麼要隱藏HTML元素?
- 6. 爲什麼隱藏邊欄元素?
- 7. 訪問隱藏的輸入元素
- 8. Firefox中隱藏的輸入元素
- 9. 爲什麼jQuery UI隱藏隱藏父元素?
- 10. 爲什麼<$>和<*>的輸入順序是>> =?
- 11. 隱藏來自「檢查元素」的隱藏輸入字段
- 12. 使用隱藏的輸入值來顯示或隱藏元素
- 13. 什麼是app.config的<client>元素?
- 14. 爲什麼我的UINavigationbar被隱藏?
- 15. Javascript顯示/隱藏<c:forEach> JSTL的div元素
- 16. 在<select>元素中隱藏選定的值?
- 17. 什麼是根元素<layout>?
- 18. 爲什麼空數組在輸出爲XML時被隱藏?
- 19. jQuery入門 - 隱藏元素
- 20. 如何提取被兩個<span>元素包圍的文本?
- 21. Web組件 - 爲什麼<content>被替換爲<slot>
- 22. 爲什麼DIV圖像不被隱藏?
- 23. 爲什麼jquery選項卡被隱藏?
- 24. 在<form>元素內按下輸入按鈕時,JavaScript文件被重新加載。爲什麼?
- 25. 爲什麼__VIEWSTATE隱藏字段被渲染,即使當我將EnableViewState設置爲false時
- 26. 點擊<spring:message>可以提交一個隱藏的輸入。
- 27. <input>標籤中可以包含什麼內聯元素?
- 28. 爲何隱藏新元素附加到的舊元素時隱藏新元素?
- 29. 爲什麼這個奇怪的符號在隱藏的元素
- 30. <a>隱藏父項時元素無法正常工作?
在此先感謝您的反對意見。如果時間允許,請告訴我爲什麼。 – 2012-07-22 10:06:00
你在問人們猜測:這不符合提問有客觀答案的[SO]方法。查看常見問題。 – Richard 2012-07-22 10:10:36
這是BS。我不是在要求炒作。我正在尋找答案。作爲一名網頁開發人員,我關心網頁上的每一個元素。一個'
'需要空間。如果有足夠的時間,一些知道答案的人會出現在這裏,讓我們知道這個決定背後的原因。如果我們提出正確的問題,有很多人可以向我們提供內部信息。你爲什麼不讓這一段時間? – 2012-07-22 10:14:52