2016-10-06 12 views
1

WFFMカスタムセーブアクションでデータを保存した後、大量のデータで成功ページをリダイレクトしたい 私は以下のコード行を試しています。カスタムセーブアクションWebフォームの次のページにデータを投稿するSitecore 8

私はCookie、セッション、またはQuery StringとResponse.Redirect(baseUrl)を使用できますが、Cookie、セッション、またはクエリ文字列を使用します。

class SaveAction : WffmSaveAction 
    { 
     public override void Execute(ID formId, AdaptedResultList adaptedFields, ActionCallContext actionCallContext, params object[] data) 
     { 
      //Save Data in Service ,, Redirect to success page with below code with some data like ID 

       string baseUrl = HttpContext.Current.Request.Url.Scheme + "://" + HttpContext.Current.Request.Url.Authority + 
HttpContext.Current.Request.ApplicationPath.TrimEnd('/') + "/success-page"; 

       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'>", baseUrl); 
       sb.AppendFormat("<input type='hidden' name='id' value='{0}'>", "123456"); 
       // Other params go here 
       sb.Append("</form>"); 
       sb.Append("</body>"); 
       sb.Append("</html>"); 

       HttpContext.Current.Response.Write(sb.ToString()); 
       HttpContext.Current.Response.End(); 
       // HttpContext.Current.Response.Redirect(baseUrl); 

      } 
} 

上記のコードは、HTMLで本文がない同じページをリロードします。

私は与えられたコードに何かがありませんか?

答えて

0

回答は、あなたがmvcフォームを持っているかどうかによって異なる場合があります。 mvc形式の場合は、http://ggullentops.blogspot.be/2016/07/sitecore-wffm-act-on-success.htmlとお読みください。それは、成功パイプライン<wffm.success>へのフックと、成功ページ(どのように正確に - クエリーリング、セッション、..はあなた次第(rコード)まで)にデータを渡すことについて記述しています。あなたが正しいパイプラインを知ったらかなり簡単です。

また、あなたがしようとしていること、つまり後でsaveactionで使用するためにデータを保存するという偉大な投稿hereもあります。ここでコピーするのはあまりにも多くのコードですが、保存操作中にデータを保存し(セッションで)、成功ページに配置するレンダリング(データを再度読み込んで処理する)を作成することになります。

あなたの成功のページに配置するレンダリングを作成すると、とにかくする必要があります。自分をリダイレクトしようとしないで、Sitecoreはあなたのためにそれを行います。

+0

クエリ文字列を使用する最初のアプローチでは、アドレスバーにQSも表示されますか?私が避けたいセッション。Sitecore仮想USerのコンセプトを試すことができますか? – Shailesh

+0

クエリ文字列がアドレスバーに表示されます。私がしたのは、成功ページに示したかった他のデータを再取得するためにIDを送信することでした。人々があなたのURLを推測してすべてのデータを取得できないようにしてください;) – Gatogordo

関連する問題