EPiServer XForm - 将文件附加到电子邮件

时间:2013-05-23 08:31:55

标签: file email upload xforms episerver

我一直在尝试关注此博客http://world.episerver.com/Blogs/Anders-Hattestad/Dates/2013/1/Upload-within-Xform/

表单上传有效,但是文件没有出现在电子邮件中,而是上传到服务器上,所以它做了一些事情。

我的指示是......

只需附加

即可
BeforeSubmitPostedData event 
Check if ((e.FormData.ChannelOptions & ChannelOptions.Email) != ChannelOptions.Email) is true 

然后发送自定义邮件并删除发送邮件选项

e.FormData.ChannelOptions &= ~ChannelOptions.Email;

如果有人能为我简化这一点,我们将不胜感激......

非常感谢。

马克。

1 个答案:

答案 0 :(得分:2)

在您的global.asax中的Application_Start中,您需要附加到XFormControl.ControlSetup事件

protected void Application_Start(object sender, EventArgs e)
{
   XFormControl.ControlSetup += new EventHandler(XForm_ControlSetup);
}

然后在您的XForm_ControlSetup方法中,附加到相关事件

public void XForm_ControlSetup(object sender, EventArgs e)
{
    XFormControl control = (XFormControl)sender;

    control.BeforeSubmitPostedData += new SaveFormDataEventHandler(XForm_BeforeSubmitPostedData);
}

并在您的XForm_BeforeSubmitPostedData方法

public void XForm_BeforeSubmitPostedData(object sender, SaveFormDataEventArgs e)
{
    // Untested
    if ((e.FormData.ChannelOptions & ChannelOptions.Email) != ChannelOptions.Email)
    {
         // Send custom mail here

         // Remove the send mail option
         e.FormData.ChannelOptions &= ~ChannelOptions.Email;
    }
    // End untested :)
}