Asp.net
為什麼 __VIEWSTATE 隱藏輸入元素被 <div></div> 包圍?
為什麼 ASP.NET 會在其中呈現隱藏的
__VIEWSTATE輸入元素<div></div>?
他們這樣做是為了“更符合 Web 標準”——這是 MSDN 雜誌文章Enforce Web Standards For Better Accessibility的引述:
ASP.NET 1.1 中存在一些眾所周知的缺陷。開箱即用的控制項生成的程式碼無法通過驗證。這主要歸因於 ASP.NET 1.1 中處理 ViewState 的方式——使用不包含在塊顯示中的隱藏輸入標記,如下所示:
<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>Microsoft 已公開表明 ASP.NET 2.0 的目標之一是更符合 Web 標準,事實上,ASP.NET 2.0 允許您創建兼容的網站和控制項。Stephen Walther 的 MSDN® 文章“使用 Web 標準建構 ASP.NET 2.0 網站”是建構兼容網站的重要資源。這篇 78 頁的文章非常詳細地介紹了根據 Web 標準建構站點。
這是否真正與 Web 標準更一致還有待商榷。我對 Web 標準的了解還不夠,無法發表自己的看法,我只是回答你的問題。