2010-10-13 92 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