Orchard Workflows - 在 textarea 中保留文本格式
Orchard Workflows - keep format of text in textarea
我有一个工作流,在提交包含文本区域的表单时发送电子邮件。
我的问题是在发送电子邮件时,输入到文本区域的内容格式丢失(例如回车 returns / 段落)。
有没有办法让内容与用户输入的完全一样?目前我是用这个输出Email里的内容activity:
<p>Message:<br/>
{Request.Form:Message}</p>
它是 运行 Orchard 1.10.2。非常感谢任何帮助!
编辑
如果您使用动态表单,此语法将起作用:
FormSubmission.Field:Message.LineEncode
如果它是您自己的表单,恐怕它看起来像是 Orchard 中的一个错误,其中 Request.Form 的链接值实际上是检索命名查询字符串参数。要对此进行排序,您必须编辑源文件:Orchard.Tokens.Providers.RequestTokens
.
添加新方法:
private static Tuple<string, string> FilterChainParam(string token, string tokenType) {
if(token.StartsWith(tokenType, StringComparison.OrdinalIgnoreCase)) {
return FilterChainParam(token);
}
return null;
}
然后在Evaluate
方法中替换这一行:
.Chain(FilterChainParam, "Text", (token, request) => request.QueryString.Get(token))
这些行:
.Chain((token) => FilterChainParam(token, "QueryString"), "Text", (token, request) => request.QueryString.Get(token))
.Chain((token) => FilterChainParam(token, "Form"), "Text", (token, request) => request.Form.Get(token))
.Chain((token) => FilterChainParam(token, "Route"), "Text", (token, request) => GetRouteValue(token, request))
不是特别漂亮,但很管用。您现在可以如下使用(注意 表单字段周围的括号)
原创
您的表单将只包含新行 (\n),电子邮件客户端将忽略这些行。您需要用换行符替换它们。幸运的是有人想到了这一点,并且在 Orchard 中有一个标记:LineEncode
。将您的电子邮件 activity 更改为:
<p>Message:<br/>
{Request.Form:(Message).LineEncode}</p>
我有一个工作流,在提交包含文本区域的表单时发送电子邮件。
我的问题是在发送电子邮件时,输入到文本区域的内容格式丢失(例如回车 returns / 段落)。
有没有办法让内容与用户输入的完全一样?目前我是用这个输出Email里的内容activity:
<p>Message:<br/>
{Request.Form:Message}</p>
它是 运行 Orchard 1.10.2。非常感谢任何帮助!
编辑
如果您使用动态表单,此语法将起作用:
FormSubmission.Field:Message.LineEncode
如果它是您自己的表单,恐怕它看起来像是 Orchard 中的一个错误,其中 Request.Form 的链接值实际上是检索命名查询字符串参数。要对此进行排序,您必须编辑源文件:Orchard.Tokens.Providers.RequestTokens
.
添加新方法:
private static Tuple<string, string> FilterChainParam(string token, string tokenType) {
if(token.StartsWith(tokenType, StringComparison.OrdinalIgnoreCase)) {
return FilterChainParam(token);
}
return null;
}
然后在Evaluate
方法中替换这一行:
.Chain(FilterChainParam, "Text", (token, request) => request.QueryString.Get(token))
这些行:
.Chain((token) => FilterChainParam(token, "QueryString"), "Text", (token, request) => request.QueryString.Get(token))
.Chain((token) => FilterChainParam(token, "Form"), "Text", (token, request) => request.Form.Get(token))
.Chain((token) => FilterChainParam(token, "Route"), "Text", (token, request) => GetRouteValue(token, request))
不是特别漂亮,但很管用。您现在可以如下使用(注意 表单字段周围的括号)
原创
您的表单将只包含新行 (\n),电子邮件客户端将忽略这些行。您需要用换行符替换它们。幸运的是有人想到了这一点,并且在 Orchard 中有一个标记:LineEncode
。将您的电子邮件 activity 更改为:
<p>Message:<br/>
{Request.Form:(Message).LineEncode}</p>