在过去的几年里,我一直在使用Seaside,我发现模板系统是一种糟糕的代码味道。有没有一个.net的框架,使用类似于Seaside canvas系统的东西来生成html,css和javascript?或者是一种避免我在模板中发现的重复的方法。
Edit 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]]第一个调用select表单元素周围的装饰器:
decorateDivAndLabel: aString on: canvas around: aBlock
canvas div: [
canvas label
for: (tagId := canvas nextId);
with: aString,':'.
aBlock value]这可以消除几乎所有的重复。
发布于 2009-05-23 04:14:50
我对模板系统也有类似的感受(参见ASP.MVC: Implementing a non-templated view engine?),在进行了一些实验之后,我采取了以下方法:
一些好处(从我的角度来看):
XHTML结果是自动格式化的(缩进,
发布于 2009-05-19 17:00:47
我对Seaside不太熟悉,但是你可以在ASP.NET MVC中使用many different view engines,例如NHaml。也许你可以对它们进行评估,看看它们是否适合你的需求。
您也可以使用create your own view engine。
https://stackoverflow.com/questions/883879
复制相似问题