NHaml 可以用作通用模板引擎吗? (MVC 之外)

2023-12-01

我见过很多人喜欢在 ASP.NET MVC 中使用 NHaml 视图引擎,但我想知道 NHaml 是否可以用作 .NET 中的通用模板引擎?我想在 ASP MVC 视图引擎环境之外从控制台应用程序使用 NHaml,或者生成 HTML 电子邮件模板。这可能吗?我没有在任何地方找到很多代码示例来展示如何执行此操作。谢谢!


是的,它可以在没有 ASP.Net MVC 的情况下使用。我将它用于我自己的网络服务器(但这并不意味着您必须将它与网络服务器一起使用)。

在这里查看我如何使用它:http://webserver.codeplex.com/SourceControl/changeset/view/50874#671672

简而言之,你所做的就是这样的:

TemplateEngine _templateEngine = new TemplateEngine();

// Add a type used in the template. Needed to that nhaml can find it when compiling the template
_templateEngine.Options.AddReferences(typeof (TypeInYourAssembly));

// base class for all templates
_templateEngine.Options.TemplateBaseType = typeof (BaseClassForTemplates);

//class providing content to the engine, should implement ITemplateContentProvider
_templateEngine.Options.TemplateContentProvider = this; 

// compile the template, 
CompiledTemplate template = _templateEngine.Compile(new List<string> {layoutName, viewPath},
                                                                typeof (TemplateImplementation));

//create a instance
var instance = (NHamlView)template.CreateInstance();

// provide the view data used by the template
instance.ViewData = viewData;

// render it into a text writer
instance.Render(writer);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NHaml 可以用作通用模板引擎吗? (MVC 之外) 的相关文章

  • Sitecore - 隐藏功能区中的按钮

    我为特定内容项创建了上下文功能区 我有两个按钮 可以将项目 升级 或 降级 到某一类别 该部分只能有一个 是否可以根据某种隐藏代码中的内容状态隐藏其中一个按钮 我了解如何链接到 Click 事件 但我想知道是否有某种加载事件可供自定义功能区
  • 在 .Net 托管的 IronPython 脚本中设置和获取变量

    我正在尝试使用 Net 控制台应用程序中托管的 IronPython 来构建验证规则引擎的原型 我已经将脚本精简到我认为的基础内容 var engine Python CreateEngine engine Execute from Sys
  • 设置 Form.KeyPreview = true 的缺点?

    我想知道 Form KeyPreview 属性实际上有什么用处 它为什么存在以及将其设置为 true 会带来什么 风险 我想它一定有some负面影响 否则它根本不应该存在 或者至少默认情况下是正确的 EDIT 我很清楚what确实如此 我问
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • HttpWebRequest/HttpResponse:如何在响应中发送数据?

    我有一个客户端和一个服务器 在客户端我有 HttpWebRequest request HttpWebRequest WebRequest Create http localhost fa Default aspx request Meth
  • 如何在C#背后的代码中动态创建数据模板并绑定TreeView分层数据

    我有一个场景 其中树视图动态更改其数据模板和数据绑定定义 我在 XAML 中创建了一个树视图 如下所示
  • 在 Azure DevOps 中为 Wix MSI 文件生成 GUID

    我正在为 Web 服务器应用程序和 Sitecore 前端应用程序设置 Wix 安装程序 我的问题并非特定于 Web 服务器或 Sitecore 我的问题是 Wix 以及如何使用它进行持续交付 1 Wix 需要每个文件和产品本身的 GUID
  • 比较已编译的 .NET 程序集?

    有没有什么好的程序可以与编译 NET 程序集进行比较 例如 我有 HelloWorld dll 1 0 0 0 和 HelloWorld dll 2 0 0 0 我想比较差异 我该怎么做 我知道我可以使用 NET Reflector 并使用
  • WPF:Prism 对于小型应用程序来说是不是太过分了?

    如果我不将我的应用程序分成不同的模块 否则我会认为 Prism 确实是可行的方法 我应该使用 Prism 吗 我知道 Prism 提供了一个方便的实现ICommand 我可以自己在一页代码中完成 并为我们提供IEventAggregator
  • Java 中等效的并行扩展

    我在 Net 开发中使用并行扩展有一些经验 但我正在考虑在 Java 中做一些工作 这些工作将受益于易于使用的并行库 JVM 是否提供任何与并行扩展类似的工具 您应该熟悉java util concurrent http java sun
  • Windows 7 任务栏:捕获缩略图

    是否可以从 Win7 任务栏捕获 实时 缩略图 我想在我的应用程序中显示 另一个窗口的 预览 但如何使用 NET 提取这些预览 Yes MSDN 杂志解释了如何 http msdn microsoft com en us magazine
  • 在 SQL 2005+ 中,CLR 存储过程是否优于 TSQL 存储过程?

    我目前的观点是否定的 更喜欢 Transact SQL 存储过程 因为它们是重量更轻且 可能 性能更高的选项 而 CLR 过程允许开发人员进行各种恶作剧 然而最近我需要调试一些写得非常糟糕的 TSQL 存储过程 像往常一样 我发现许多问题是
  • 没有强命名的代码签名是否会让您的应用程序容易被滥用?

    尝试了解authenticode代码签名和强命名 我是否正确地认为 如果我对引用一些 dll 非强命名 的 exe 进行代码签名 恶意用户就可以替换我的 DLL 并以看似由我签名但正在运行的方式分发应用程序他们的代码 假设这是真的 那么您似
  • 用于登录 .NET 的堆栈跟踪

    我编写了一个 logger exceptionfactory 模块 它使用 System Diagnostics StackTrace 从调用方法及其声明类型中获取属性 但我注意到 如果我在 Visual Studio 之外以发布模式运行代
  • IEnumerable 与 IReadOnlyList

    选择有什么区别IEnumerable

随机推荐

  • pip install mysqlclient 在 Ubuntu 上使用 docker 上的 python 2.7 失败

    当我运行下面的 docker 文件代码时 RUN apt get update apt get install y no install recommends ca certificates vim git python python pi
  • 在 pandas/matplotlib 中格式化时间序列 x 轴

    我想显示每个月份的缩写 以及年份的缩写 我很接近 我目前遇到的问题是年份不正确 我发现这是 numpy datetime64 日期时间索引采用这种格式 和使用 1970 纪元的 python datetime 之间的问题 图表上显示的两年应
  • 显示随机字符串

    我试图在每次按下 strings xml 中定义的一组字符串中的按钮时显示一个随机字符串 这是字符串 ID 的示例
  • linkedHashSet 中的有序插入,有什么高性能的方法吗?

    所以我有一个 LinkedHashSet 其值为 a1 a2 b c1 c2 我想用 x 替换 b 使得 x 的顺序应与 b 的顺序相同 一种明显的方法是 private LinkedHashSet
  • JavaScript Google Maps API 如何将位置纬度/经度存储到全局变量

    我是 JavaScript 新手 希望实现 Google 提供的代码 以便在您的位置放置标记 但是 我想获取位置数据并在 getCurrentPosition 块之外使用它 我的第一遍是实例化一个对象 其中纬度和经度作为块外部的属性 并将其
  • 在 Canvas 中使用 arc() 方法添加多余的线条

  • 是否可以将处理(java 3d)中的窗口附加到像面板一样的摆动单元中?

    我想将另一个窗口附加到现有的窗口中JFrame or JComponent或者什么 有什么办法可以做到吗 编辑 不 当我的意思是正如标题所说 攻击a加工 显示窗口 处理基本上是在 java 中使用 3d 进行操作并可视化 3d 窗口 每当运
  • 如何使用 JavaScript 获取整个文档的高度?

    有些文档我无法获取文档的高度 将某些内容绝对放置在最底部 此外 填充底部似乎在这些页面上没有任何作用 但在高度将返回的页面上起作用 相关案例 http fandango com http paperbackswap com 方丹戈jQuer
  • C# 使用 SMO 以编程方式创建数据库

    我正在尝试创建数据库 但创建后无法连接到它 服务器是Microsoft SQL Server 2008并使用 Net 4 5 我们使用 SMO 创建数据库 但我们通常使用Dapper连接并查询数据库 这是我到目前为止的代码 它有效 Syst
  • WebAPI OAuth 注销 - 如何删除令牌 Cookie?

    我有一个带有 OAuth 登录配置的 WebAPI 如下所示 app UseOpenIdConnectAuthentication new OpenIdConnectAuthenticationOptions ClientId client
  • 如何找到与正方形周长相交的 Voronoi 图的悬垂线的交点?

    我试图通过查找与定义的正方形周长相交的悬垂多边形线的交点来更新 Voronoi 的交点数组 我希望能够重新创建一个新的 Voronoi 交点数组 该数组应该用相交点替换那些悬垂点 下面是我为实验创建的一些代码 function grainn
  • 使用 iTextSharp 将图像转换为 PDF 并保留剪切路径

    我们希望以编程方式将图像批量转换为 PDF 到目前为止 我们似乎将使用 iTextSharp 但我们在使用剪切路径的 JPG 图像时遇到问题 我们在测试中使用以下代码 using FileStream fs new FileStream o
  • 删除 Postgresql 中连续的重复行

    我有一个包含 3 列 id 金额 时间 的表 该表根据id升序排列 我想删除除第一个之外在金额列中具有相同值的所有连续行 eg id 12 15 16 17 19 22 amount 555 546 546 53 53 500 time A
  • 通用Web表单的数据库设计

    我想构建一个通用网络表单的后端 其中包含用户可以回答的问题 问题有多种类型 普通 文本问题 通过简单的文本字段回答问题 Example 一般个人信息 例如姓名 文本区域问题 相同 但有更多空间来写答案 Example 您要添加的更多信息 框
  • 通过 Odoo 中的代码发送电子邮件时出错

    我创建了一个通过单击模块 linh warehoues 中的按钮 发送电子邮件 来发送电子邮件的函数 但出现以下错误 关系 mail thread 不存在 我实在不明白这是什么意思 我还检查了 mail thread py 中存在 mail
  • if 语句中的 getline

    从我读到的来看 getline 在布尔上下文中使用会返回隐式转换为void 我在网络上没有找到任何真正引用此声明的地方 它到处都说隐式转换不存在 并且在布尔上下文中指针应该是相同类型的 并且如果ptr 0 than 0转换为指针类型ptr
  • 检查嵌套字典内的成员资格

    这是此问题的后续问题 Python DictReader 跳过缺少列的行 事实证明我很愚蠢 并且使用了错误的 ID 字段 顺便说一句 我在这里使用的是 Python 3 x 我有一个员工字典 由字符串 directory id 索引 每个值
  • 获取Xamarin图库图像的路径?

    我正在尝试获取图库图像的路径 我正在获取存储在内部存储中但不是外部存储中的图像的路径 我还启用了已授予的读写存储和相机访问权限 这是我的代码 void ChoosePhoto try var imageIntent new Intent i
  • PHP 不区分大小写的 in_array 函数

    使用时是否可以进行不区分大小写的比较in array功能 因此 使用这样的源数组 a array one two three four 以下查找都将返回 true in array one a in array two a in array
  • NHaml 可以用作通用模板引擎吗? (MVC 之外)

    我见过很多人喜欢在 ASP NET MVC 中使用 NHaml 视图引擎 但我想知道 NHaml 是否可以用作 NET 中的通用模板引擎 我想在 ASP MVC 视图引擎环境之外从控制台应用程序使用 NHaml 或者生成 HTML 电子邮件