gpt4 book ai didi

razor - ckeditor 和 razor 语法模板

转载 作者:行者123 更新时间:2023-12-01 02:26:04 24 4
gpt4 key购买 nike

我有一个有趣的问题。我有一个发送电子邮件的网站。
电子邮件模板通常是直截了当的,但对于一位客户,他希望我将他的公共(public)网站上的内容转换为电子邮件友好的 html。

我不仅要解决他特定网站的问题,还要解决其他未知网站的问题。
所以我记得你可以将 Razor 作为模板引擎运行。

长话短说。它正在运行并且运行良好。
我的问题归结为这一点。当有人用 Razor 风格的循环编辑模板时,Ckeditor 的行为非常奇怪。

知道如何防止 CKEditor 搞砸吗?

<table style="width: 100%;" width="100%">
<tbody>
@foreach (var row in body.indexPageRow) {
foreach (var cell in row.teaser) {
<tr>
<td class="row">@Raw(cell.teaserContent.a.Html)</td>
<td class="row">@Raw(cell.teaserContent.div.InnerHtml)</td>
</tr>
}}
</tbody>
</table>

上面的代码保存在ckeditor中时去掉了razor信息,变成了一个空表
<table style="width: 100%;" width="100%">
<tbody></tbody>
</table>

最佳答案

我能想到的唯一方法是结合使用 html 注释和 razor 注释。

最初,您会像这样编写 Razor 模板:

@{
Layout = null;
}

<!DOCTYPE html>
<html>
<head>
<title>Index</title>
</head>
<body>
<table>
<tbody>
<tr><td>X</td><td>Y</td></tr>
@*<!--*@
@for (var x = 1; x < 5; x++) {
for (var y = 1; y < 5; y++) {
@*-->*@
<tr>
<td class="row">@Html.Raw(x)</td>
<td class="row">@Html.Raw(y)</td>
</tr>
@*<!--*@
}
}
@*-->*@
</tbody>
</table>
</body>
</html>

上面的代码是有效的,并且将无错误地呈现。但是当你把它放入 html 编辑器时,它会被浏览器重新排列,所以你需要在它显示进行编辑之前对其进行更改,以便删除 razor 注释,只保留 html 注释。

因此,一旦您通过替换 @*<!--*@ 的所有实例删除了 Razor 评论与 <!--以及 @*-->*@ 的所有实例与 -->你应该有以下
<!DOCTYPE html>
<html>
<head>
<title>Index</title>
</head>
<body>
<table>
<tbody>
<tr><td>X</td><td>Y</td></tr>
<!--
@for (var x = 1; x < 5; x++) {
for (var y = 1; y < 5; y++) {
-->
<tr>
<td class="row">@Html.Raw(x)</td>
<td class="row">@Html.Raw(y)</td>
</tr>
<!--
}
}
-->
</tbody>
</table>
</body>
</html>

这将在 html 编辑器中呈现,并且不会被浏览器破坏,正如 Alfonso 指出的那样,jsfiddle http://jsfiddle.net/wPGLd/3/ 上的一个示例

编辑完成后,您需要捕获 html 并通过替换 <!-- 的所有实例来重新应用 Razor 评论。与 @*<!--*@以及 --> 的所有实例与 @*-->*@
在进入 ckeditor 之前和之后截取 html 是相当直接的并且有据可查。我发现以下文章解释了如何在提交时获取 ckeditor 内容

How to update CKEditor content on form submit – equivalent of OnAfterLinkedFieldUpdate FCKEditor

以下问题也涵盖了这一点

Update editor content immediately before save in CKEditor plug-in

关于razor - ckeditor 和 razor 语法模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16353055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com