Orchard CMS Workflows表单动态收件人配置失效问题求助
解决Orchard CMS Workflows表单邮件收件人动态判断问题
问题根源
你使用Request.Form.Email无法正确获取用户输入的邮箱值,因为在Orchard Workflows的上下文环境中,表单字段的变量并非直接从Request.Form读取,而是存储在WorkflowContext对象里。
具体修复步骤
- 确认表单字段别名:进入后台编辑你的联系表单,找到邮箱字段的「技术名称」(即别名),确保它是
Email(如果是其他名称,比如UserEmail,后续变量需对应修改)。 - 替换Liquid变量:将收件人配置里的Liquid语句替换为Workflows上下文变量:
注意:如果字段别名不是{% if WorkflowContext["Form_Email"] == "john@gmail.com" %}john@gmail.com{% else %}jack@gmail.com{% endif %}Email,把Form_Email改成Form_你的字段别名。 - 先测试变量有效性:可以先把收件人字段设为
{{ WorkflowContext["Form_Email"] }},提交表单测试是否能收到用户输入的邮箱,确认变量能正常取值后再添加判断逻辑。 - 查看Workflows日志排查:后台进入Workflows模块的日志页面,查看每次表单提交的上下文变量值,能直观看到
Form_Email是否正确获取了用户输入。
补充说明
之前的空白页大概率是Liquid语法错误或变量不存在导致的运行异常,现在空白页消失但判断失效,核心原因就是Request.Form.Email在Workflows上下文里无法访问,换成WorkflowContext变量即可解决。
内容的提问来源于stack exchange,提问作者KSJ
相关产品推荐
相关产品推荐

