Replace default controller of Episerver Forms

Episerver Forms is Block, stay in a ContentArea (inside a Page).

Without JavaScript, Forms post data from Visitor to its Page.

With JavaScript, Forms post data from Visitor to its CoreController (which is configured in Forms.config)

<episerverforms …
coreController=”/EPiServer.Forms/DataSubmit”

</episerverforms>

Default CoreController is EPiServer.Forms.Controllers.DataSubmitController, which is a normal ASP.NET MVC controller.

If you want to use your own controller, here is a guide (tested with AlloyMVC and Forms 2.0):

  • Make a controller. GetFormInitScript() and Submit() are most important methods.
  • map the route in Global.asax
RouteTable.Routes.MapRoute(“DemoSubmitFormController”, “demo/{controller}/{action}”, new { controller = “demosubmitform” , action = “Index” });
  • Modify Forms.config (inside the modules/_protected folder)