有沒有辦法讓Episerver單獨留下HTML id屬性,更重要的是有多少工作呢?要讓Episerver離開ID屬性需要多少工作?
我知道你也可以移除視圖狀態,那是多少工作?
我不是在這裏開始討論關於語義和優化,CMS是否應該觸及前端代碼是一個長期的爭論。我只需要知道這些適應是多麼困難。
有沒有辦法讓Episerver單獨留下HTML id屬性,更重要的是有多少工作呢?要讓Episerver離開ID屬性需要多少工作?
我知道你也可以移除視圖狀態,那是多少工作?
我不是在這裏開始討論關於語義和優化,CMS是否應該觸及前端代碼是一個長期的爭論。我只需要知道這些適應是多麼困難。
我想你只是在談論模板?
難題在於重寫表單設計器中對XForms的表單支持。 您還需要刪除頁面上的編輯功能。
您可能還想覆蓋EPiServer:Property等使用最多的控件中的一些內容,但除此之外,它只是爲了不在模板代碼中放置任何服務器表單,並且不會出現任何ASP.NET問題垃圾標記。
EPiServer Web控件的開發是爲了與ASP.NET WebForms框架一起工作,並且在某些情況下對生成ID標籤的控制有限。如果您使用EPiServer CMS 6中支持的dotnet 4.0,則更好。
它是很多工作完全消除了由WebForms控件生成的所有錯誤的HTML。您最終會重寫所有內容並釋放大量ASP.NET內置功能。如果您使用WebForms,可能更好的是務實和更具成本效益,並接受ID標籤和小視圖狀態。
擺脫視圖狀態的常用方法是刪除ASP.NET使用的全局窗體標籤。已知的副作用是編輯器使用的視圖模式下的右鍵單擊菜單停止工作,並且一些常見的第三方模塊也會按預期停止工作,因爲它們使用form-tag注入javascript。你也會遇到XForms的問題。
如果您想更好地控制生成的html,使用您自己的擴展方法呈現您的頁面的MVC方式,該方法從EPiServer屬性中提取值。
MVi尚未被EPiServer CMS 6支持,但將很好地集成到未來版本中。
如果您需要關於如何解決這些問題的更具體的建議,請發佈更多ID-tags或View State問題的具體示例! – 2010-10-14 08:31:18
生成的ID的問題在於它們混淆了HTML文檔的語義,並且在樣式表中使用更多麻煩的ID,因爲您不能依賴ID來獲得特定性,因爲它(通常)是常量正在開發中(以及未來的版本/更新)。 如果您通過漸進增強(hijax)啓用表單以支持回發和ajax,則整個文檔在表單元素中的包裝可能不是問題(語義除外)。 – Jens 2010-10-25 06:38:32