gpt4 book ai didi

.net - .NET 的 HTML 生成器?

转载 作者:行者123 更新时间:2023-12-04 11:17:53 26 4
gpt4 key购买 nike

过去几年使用 Seaside 后,我发现模板系统是一种糟糕的代码味道。 .net 是否有使用类似于 Seaside Canvas 系统的东西来生成 html、css 和 javascript 的框架?或者是一种避免我倾向于在模板中找到的重复的方法。

[编辑]
NHaml 与我正在寻找的东西并不接近。关键不在于 (X)HTML 的简写,而在于拥有一种我可以重构和重用代码的编程语言。

在 Seaside 中,它可能是这样的:( Canvas 是 html [和 javascript] 的构建器)

renderContentOn: canvas
canvas form
class: 'eventEditor';
with:[
self renderWhoOn: canvas;
renderButtonsOn: canvas]

在这个方法中,我调用了两个子程序
renderWhoOn: canvas
self decorateDivAndLabel: 'Who' on: canvas around: [
canvas select
id: tagId;
selected: model who;
list: model whoList;
callback: [:value | model who: value]]

第一个调用围绕 select 表单元素的装饰器:
decorateDivAndLabel: aString on: canvas around: aBlock
canvas div: [
canvas label
for: (tagId := canvas nextId);
with: aString,':'.
aBlock value]

这允许消除几乎所有的重复。

最佳答案

我对模板系统也有类似的感受(见 ASP.MVC: Implementing a non-templated view engine? ),经过一些实验,我采取了以下方法:

  • 实现了一个流畅的 HTML 生成器 C# 类,它不直接写入流,而是将整个 HTML 页面构造为内存中的对象层次结构。
  • 更高级别(可重用)的 HTML 代码片段(如复杂的输入控件等)被实现为单独的类,并作为节点插入到这个层次结构中,并且可以自动将自己扩展为纯 HTML 节点。
  • MVC View 是 POCO C# 类,它们构造 HTML 层次结构并将其写出到响应流中。

  • 一些好处(从我的角度来看):
  • 您仍然保留对 HTML 的控制
  • 复用、继承、封装...
  • 结果是自动格式化的(缩进、XHTML 等)
  • 最重要的是......没有使用单独的 DSL 的模板脚本。
  • 关于.net - .NET 的 HTML 生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/883879/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com