c# - 是否有像 nodejs 的 c# razorengine 这样的模板引擎

标签 c# javascript node.js

<分区>

有没有像razorengine这样的nodejs模板引擎,专门输出html但不限于html。所以我也可以像使用 RazorEngine 一样使用它即时创建 javascript 文件?

我希望能够做的一个例子:

var fs = require('fs');
var engine = require('templatingEngine');

var template = "<p>Hello, <% name %></p>";
var data = [
    {id:"1", name: "bob"},
    {id:"2", name: "pete"},
    {id:"3", name: "jake"}
    ];

var result = engine.parse(template, data);

fs.writeFile("/tmp/hellos.html", result, function(err) {
    if(err) {
        console.log(err);
    } else {
        console.log("The file was saved!");
    }
});

hellos.html ==>

<p>Hello, bob</p>
<p>Hello, pete</p>
<p>Hello, jake</p>

最佳答案

一般来说,只有少数 View 引擎,比如Jade , 主要针对生成标记。大多数会使用某种形式的嵌入式语句——类似于 Razor 的 @...,例如 mustache{{...}} -- 支持模板化任何所需的文本内容。

而且,通常任何与请求/响应的耦合都将由 http 框架的一部分创建。例如,使用 Express(引用:app settingsapp.engine()):

app.set('view engine', 'jade');
app.engine('html', require('ejs').renderFile);

确切的 API 可能因不同的 View 引擎而异。但是,使用 Handlebars ,你可以这样做:

var handlebars = require('handlebars');

var template = "{{#each this}}<p>Hello, {{name}}</p>{{/each}}";
var compiledTemplate = handlebars.compile(template);

var data = [
    {id:"1", name: "bob"},
    {id:"2", name: "pete"},
    {id:"3", name: "jake"}
    ];

var result = compiledTemplate(data);

并且,对于 View 引擎的样本,consolidate project列出大约 20 个。

关于c# - 是否有像 nodejs 的 c# razorengine 这样的模板引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19058986/

相关文章:

c# - 为什么原生Win32难拆,.NET app拆容易?

javascript - 查找在 word 包装元素中如何拆分行

linux - dokku 保留应用程序运行时生成的文件

node.js - 停止测试运​​行 mocha

node.js - 如何从 NodeJs/express/mongoose 中的对象中删除项目?

c# - 如何跨多台机器(如渲染农场)运行 C# Task Parallel Library?

c# - 将球卡在棋盘上(乒乓球比赛)

c# - 如何以编程方式响应 Windows 8 Metro 中的 Snap

javascript - 无法运行 php 代码, Angular 路由问题

javascript - 无法使用 Express 应用程序中的 xmlreader 解析 Parse Cloud 中 xml 文件中的数据