首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于.NET的HTML生成器?

用于.NET的HTML生成器?
EN

Stack Overflow用户
提问于 2009-05-19 16:49:47
回答 2查看 2.6K关注 0票数 7

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

Edit NHaml和我要找的不太一样。重点不是拥有(X)HTML的简写,而是拥有一种编程语言,在这种语言中我可以重构和重用代码。

在Seaside中,它可能看起来像这样:(画布是html和javascript的构建器)

代码语言:javascript
复制
renderContentOn: canvas
    canvas form
        class: 'eventEditor';
        with:[
            self renderWhoOn: canvas;
                 renderButtonsOn: canvas]

在此方法中,我调用了两个子例程

代码语言:javascript
复制
renderWhoOn: canvas
self decorateDivAndLabel: 'Who' on: canvas around: [
    canvas select
        id: tagId;
        selected: model who;
        list: model whoList;
        callback: [:value | model who: value]]

第一个调用select表单元素周围的装饰器:

代码语言:javascript
复制
decorateDivAndLabel: aString on: canvas around: aBlock
canvas div: [
    canvas label
        for: (tagId := canvas nextId);
        with: aString,':'.
    aBlock value]

这可以消除几乎所有的重复。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-05-23 04:14:50

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

  • 实现了一个流畅的超文本标记语言生成器C#类,该类不直接写入流,而是将整个超文本标记语言页面构造为内存中的对象(可重用)的HTML代码片段(如复杂的输入控件等)。作为单独的类实现,并作为节点插入到此层次结构中,并且可以将自己扩展为普通的HTML节点automatically.
  • MVC视图是构建HTML层次结构并将其写入响应流的POCO C#类。

一些好处(从我的角度来看):

XHTML结果是自动格式化的(缩进,

  • 等)
  • ,最棒的是……没有使用单独DSL的模板脚本。
票数 6
EN

Stack Overflow用户

发布于 2009-05-19 17:00:47

我对Seaside不太熟悉,但是你可以在ASP.NET MVC中使用many different view engines,例如NHaml。也许你可以对它们进行评估,看看它们是否适合你的需求。

您也可以使用create your own view engine

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/883879

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档