2010-10-13 54 views
0

有沒有辦法讓Episerver單獨留下HTML id屬性,更重要的是有多少工作呢?要讓Episerver離開ID屬性需要多少工作?

我知道你也可以移除視圖狀態,那是多少工作?

我不是在這裏開始討論關於語義和優化,CMS是否應該觸及前端代碼是一個長期的爭論。我只需要知道這些適應是多麼困難。

+0

如果您需要關於如何解決這些問題的更具體的建議,請發佈更多ID-tags或View State問題的具體示例! – 2010-10-14 08:31:18

+0

生成的ID的問題在於它們混淆了HTML文檔的語義,並且在樣式表中使用更多麻煩的ID,因爲您不能依賴ID來獲得特定性,因爲它(通常)是常量正在開發中(以及未來的版本/更新)。 如果您通過漸進增強(hijax)啓用表單以支持回發和ajax,則整個文檔在表單元素中的包裝可能不是問題(語義除外)。 – Jens 2010-10-25 06:38:32

回答

0

我想你只是在談論模板?

難題在於重寫表單設計器中對XForms的表單支持。 您還需要刪除頁面上的編輯功能。

您可能還想覆蓋EPiServer:Property等使用最多的控件中的一些內容,但除此之外,它只是爲了不在模板代碼中放置任何服務器表單,並且不會出現任何ASP.NET問題垃圾標記。

1

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支持,但將很好地集成到未來版本中。

+0

謝謝!這正如我當時所想的那樣。或者經歷過。 – Jens 2010-10-25 06:48:21

+0

如果控件或模塊生成錯誤的標記,我會說它應該以任何方式重寫,或根本不使用。它認爲,僅僅因爲您想使用預先存在的模塊而在用戶面前轉儲糟糕的標記是不正確或公平的。如果您繼續以這種方式支持糟糕的標記,我們會支持不負責任的網站開發。 – Jens 2010-10-25 06:49:12