Form Thank you page - DefaultAppendExtraInfoToRedirection doesn't work

Member since: 2008

I've implemented my own IAppendExtraInfoToRedirection and registered it with the container, following the below post.

https://world.episerver.com/documentation/developer-guides/forms/redirecting-to-thank-you-page/

However it doesn't work and the code never gets hit when debugging. Also, when I remove my custom implementation it doesn't look like the default implementation (DefaultAppendExtraInfoToRedirection)  works anymore in my solution (CMS 10.10.1 + Forms 4.7). My understanding is that this should add the following querystring parameters onto any thank you page redirects

  •  __FormSubmissionId
  • __FormGuid
  • __FormLanguage

Why might this not be working? Could it be related to any form configuration (we work in non JS mode), or could it be related to any custome actors I have (that are working in sync mode as they set cookies on the response). 

Any ideas?

#187142 Jan 13, 2018 1:41
  • #187148 Edited, Removed, Jan 15, 2018 4:23
  • I have check on Alloy template and it is working on lastest Forms. The URL looks like: "?__FormGuid=002c5114-0410-4f45-9c43-2b6ab5cb5f15&__FormLanguage=en&__FormSubmissionId=54d92b26-90fe-466e-85bb-2f7590464c18" for both js and non-js mode. Could you try to reproduce on the alloy template and if it work or not?

    #187150 Jan 15, 2018 4:46
  • Member since: 2008

    Thanks for the reply.

    I also can't reproduce on latest Alloy. I don't think its necessarily a bug with the core Forms product. I was just trying to get an idea of where might be a good place to start. Redirection happens fine, its just any additional parameters aren't added.

    I guess I'll start transfering our custom form implementation to the latest Alloy to see if I can reproduce - we have a fair few extensions, custom actors, external system information mappings, custom form blocks etc etc. I was just hoping there might be an obvious place to start or logging that might help

    Our custom actor is feels like the right place to look at as this has IsSyncedWithSubmissionProcess = true and so modifies the response. 

    #187167 Jan 15, 2018 10:30
  • Member since: 2008

    Update: I've found this exception appears on Form submission, which feels related, though I'm not sure what the content link that could be missing is

    System.ArgumentNullException: The provided content link does not have a value.
    Parameter name: contentLink
       at EPiServer.Core.Internal.DefaultContentLoader.Get[T](ContentReference contentLink, LoaderOptions loaderOptions)
       at EPiServer.Web.Routing.Internal.DefaultSimpleAddressRouteHandler.GetContentReference(UrlBuilder urlBuilder, SegmentContext segmentContext)
       at EPiServer.Web.Routing.Internal.DefaultSimpleAddressRouteHandler.GetRouteValues(String urlSegment, ContentReference routeRoot, SegmentContext segmentContext)
       at EPiServer.Web.Routing.Segments.Internal.SimpleAddressSegmentRouter.ResolveContentForIncoming(ContentReference contentlink, String urlSegment, SegmentContext context)
       at EPiServer.Web.Routing.Segments.Internal.SimpleAddressSegment.GetIncomingNode(ContentReference contentLink, SegmentContext context)
       at EPiServer.Web.Routing.Segments.Internal.SimpleAddressSegment.RouteDataMatch(SegmentContext context)
       at System.Linq.Enumerable.All[TSource](IEnumerable`1 source, Func`2 predicate)
       at EPiServer.Web.Routing.Internal.DefaultContentRoute.RouteSegmentContext(SegmentContext segmentContext)
       at EPiServer.Web.Routing.Internal.DefaultContentRoute.GetRouteData(HttpContextBase httpContext)
       at System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext)
       at System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase context)
       at System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
       at System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep step)
       at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)",
    #187235 Jan 16, 2018 16:09
  • It look like no code in Forms invoke in your exception. Could you try with a new simple Form to see if the problem still there?

    #187256 Jan 17, 2018 3:17