Orchardcms Orchard工作流-在textarea中保留文本格式

Orchardcms Orchard工作流-在textarea中保留文本格式,orchardcms,Orchardcms,我有一个工作流,在提交包含文本区域的表单时发送电子邮件 我的问题是,在发送电子邮件时,输入文本区域的内容格式丢失(例如,回车/段落) 有没有一种方法可以完全按照用户输入的内容进行维护?目前,我正在使用此功能输出电子邮件活动中的内容: <p>Message:<br/> {Request.Form:Message}</p> 消息: {Request.Form:Message} 它正在运行Orchard 1.10.2。非常感谢任何帮助 编辑 如果使用动态表单,此

我有一个工作流,在提交包含文本区域的表单时发送电子邮件

我的问题是,在发送电子邮件时,输入文本区域的内容格式丢失(例如,回车/段落)

有没有一种方法可以完全按照用户输入的内容进行维护?目前,我正在使用此功能输出电子邮件活动中的内容:

<p>Message:<br/>
{Request.Form:Message}</p>
消息:
{Request.Form:Message}

它正在运行Orchard 1.10.2。非常感谢任何帮助

编辑

如果使用动态表单,此语法将起作用:

FormSubmission.Field:Message.LineEncode
如果它是您自己的表单,恐怕它看起来像是Orchard中的一个bug,请求的链接值。表单实际上是检索命名查询字符串参数。要对其进行排序,您必须编辑以下源文件:
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;
}
以下几行:

.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)。你需要用换行符替换它们。幸运的是,有人想到了这一点,果园里有一个标记:
LineEncode
。将您的电子邮件活动更改为:

<p>Message:<br/>
{Request.Form:(Message).LineEncode}</p>
消息:
{Request.Form:(Message.LineEncode}


谢谢@Hazza,但是当我尝试这样做时,我在电子邮件中什么也没有得到。我需要启用令牌Html/元素令牌模块还是什么?您使用的是什么版本的Orchard?您是否在令牌下拉列表中看到
LineEncode
令牌?它应该在文本标记下。您是否使用动态表单?然后可以使用以下语法:
FormSubmission.Field:Message.LineEncode
Awesome,谢谢。我使用的是动态表单,所以“FormSubmission.Field:Message.LineEncode”很有效——我没有意识到我可以做到这一点,尽管在我不这么做的时候有一个替代方案很好。谢谢,乌节总是有太多的方法来做同样的事情,哈哈
<p>Message:<br/>
{Request.Form:(Message).LineEncode}</p>