我的情景: 我正在使用RadEditor控件作为用户填写以提交电子邮件的表单上的编辑器。 RadEditor是用户键入电子邮件正文的位置。我们在数据库中存储了一些以HTML格式存储的电子邮件模板,用户可以通过表单上的下拉列表进行选择。模板是完整的HTML,具有自己的头标签和样式标签以及它们自己的样式。
我的问题:
我可以将RadEditor内容设置为我的模板的完整HTML吗?我希望能够将编辑器的内容设置为完整的HTML ,并能够从服务器代码隐藏中的RadEditor中获取完整的HTML。我目前正在尝试这样做但是当我使用编辑器的.Content属性时,我只得到<body>
标签内部的内容,而不是完整的HTML。当我需要在用户输入内容后将编辑器内容保存回数据库时,这是有问题的,因为我需要将完整的HTML保存到数据库中。
我的方法是不正确的,而我应该只是尝试保存和检索编辑器的html的主体,而不是完整的HTML?在这种情况下,我如何处理需要为每个电子邮件模板应用的不同样式?
请注意,我一直在使用编辑器的ContentAreaMode="Iframe"
设置。
谢谢!!!
答案 0 :(得分:3)
我认为你的方法是正确的。如何完成它:
不是将“完整的html”保存到数据库,而是保存RadEditor.Content
HTML和(在另一列中)他们选择的HTML模板的ID。如果他们想要更改模板,这将是很好的。
您的HTML模板可以使用某种类型的“占位符”来告诉您从RadEditor“插入”HTML的位置。假设您的HTML模板中包含文本%%BODY%%
。
当您准备好发送电子邮件时,请获取模板,RadEditor.Content
(来自回发或查询数据库),并将它们组合在一起。像
string htmlTemplate = //your HTML template from your database
string body = htmlTemplate.Replace("%%BODY%%", RadEditor.Content); //the string 'body' is what will be sent as your email body.