c# - 在控制台应用程序中将 HTML 标记传递到 RazorEngine

标签 c# html templates razor

我正在尝试使用 RazorEngine 3 将 HTML 元素插入模板中。当我尝试这样做时,生成的字符串(稍后用作 HTML)最终会显示 HTML 标记,而不是利用它来呈现页面。

代码:

var linkText = new HtmlString("<a href=" + location + ">" + linkName + "</a>");
string result = Razor.Parse(template, new {MyLink = linkText});

模板文件:

Link to file: @Model.MyLink

生成的 HTML:

Link to file: <a href=http://blah.com>Blah link</a>

此功能在 RazorEngine 2 上运行良好,但由于另一个故障我不得不升级。此外,这是一个控制台应用程序,因此添加 @Raw 功能可能会很复杂。

最佳答案

最终的答案是使用传递到模板中的字符串类型变量。该模板又使用 Raw() 方法,如下所示。

代码:

string linkText = "<a href=" + location + ">" + linkName + "</a>";
string result = Razor.Parse(template, new {MyLink = linkText});

模板文件:

Link to file: @Raw(@Model.MyLink)

关于c# - 在控制台应用程序中将 HTML 标记传递到 RazorEngine,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12846232/

相关文章:

javascript - 调整窗口大小时禁用调整特定 div 的大小

c++ - 类成员模板函数的名称实例

c++ - 如何为 QML 创建通用 ListModel

c++ - 模板集合的不同排序方法

c# - 如何找到给定纬度/经度以北 x 公里的纬度/经度?

c# - 在 C# 中检查反病毒状态

c# - 如何使用正则表达式获取特定值

c# - OleDB 连接字符串到 MySQL 连接字符串

android - Android 中没有 css 标签的文本

javascript - 在移动设备上隐藏 div 中的项目