Пользовательское действие сохранения WFFM: - передать данные ответа на страницу благодарности

Я использую методы действия WFFM Custom Save. Здесь я выполняю какую-то службу и получаю ответ, я должен отобразить ответ на следующей странице. Я использовал приведенный ниже код, но он не работает.

internal class WffmCustomSaveAction : WffmSaveAction
{
    public override void Execute(ID formId, AdaptedResultList adaptedFields, ActionCallContext actionCallContext, params object[] data)
    {
        HttpContext.Current.Response.Clear();

        StringBuilder sb = new StringBuilder();
        sb.Append("<html>");
        sb.AppendFormat(@"<body onload='document.forms[""form""].submit()'>");
        sb.AppendFormat("<form name='form' action='{0}' method='post'>", "http://local.website/thankyoupage");
        sb.AppendFormat("<input type='hidden' name='id' value='{0}'>", "id123");
        // Other params go here
        sb.Append("</form>");
        sb.Append("</body>");
        sb.Append("</html>");

        HttpContext.Current.Server.Transfer(sb.ToString());
        HttpContext.Current.Response.End();
    }
}

person Shailesh    schedule 19.12.2016    source источник


Ответы (1)


Вы не должны использовать SaveAction для перенаправления на страницу благодарности. Вы можете использовать конвейеры Sitecore для изменения URL-адреса перенаправления. Рабочий пример можно найти здесь для Формы MVC (конвейеры Webforms также упоминаются, но без примера кода).

Все сводится к поиску правильных пайплайнов в Sitecore. В этом случае вам нужен конвейер в случае успеха. Но имейте в виду: между веб-формами и решением mvc есть большая разница.

Веб-формы. Конвейер в случае веб-форм: <successAction> Это можно найти в Sitecore.Forms.config.

Mvc: конвейер в случае mvc: <wffm.success> Это можно найти в Sitecore.MvcForms.config.

person Gatogordo    schedule 20.12.2016