.NET 的 HTML 生成器?
在过去几年使用 Seaside 后,我发现模板系统的代码味道很糟糕。 是否有一个 .net 框架使用类似于 Seaside 画布系统的东西来生成 html、css 和 javascript? 或者是一种避免我在模板中发现重复的方法。
[编辑] NHaml 与我正在寻找的东西并不接近。 重点不是拥有 (X)HTML 的简写,而是拥有一种可以重构和重用代码的编程语言。
在 Seaside 中,它可能看起来像这样:(画布是 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]]
第一个调用围绕选择表单元素的装饰器:
decorateDivAndLabel: aString on: canvas around: aBlock
canvas div: [
canvas label
for: (tagId := canvas nextId);
with: aString,':'.
aBlock value]
这允许消除几乎所有重复。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我对模板系统有类似的感觉(请参阅 ASP.MVC:实现非-模板化视图引擎?),经过一些尝试,我采用了以下方法:
一些好处(从我的角度来看):
I have similar feelings about template systems (see ASP.MVC: Implementing a non-templated view engine?), and after experimenting a little, I took the following approach:
Some of the benefits (from my perspective):
我不熟悉 Seaside ,但您可以使用 许多不同的视图引擎与 ASP.NET MVC,例如,NHaml。 也许您可以评估这些并看看其中是否适合您的需求。
您还可以创建您自己的视图引擎。
I am not familiar with Seaside , but you can use many different view engines with ASP.NET MVC, e.g., NHaml. Perhaps you can evaluate those and see if one would fit your needs.
You can also create your own view engine.