2016-09-27 2 views
2

モデルにバインドされた部分ビュー内でkendoウィンドウとAjax.BeginForm()を使用しています。 ウィンドウはストリームに直接レンダリングされます。ここでフォームを2回目に送信するときに異常な動作が発生する

@{ 
     Html.Kendo().Window() 
      .Name("name")  
       .Content(
         @<text>       
          @using (Ajax.BeginForm("PostReview", "Review", new AjaxOptions 
          { 
           HttpMethod = "Post", 
           InsertionMode = InsertionMode.Replace, 
           OnSuccess = "onSuccessreviewOrderDialogForm", 
          }, new 
          { 
           @id = "reviewOrderDialogForm" 
          })) 
          { 

           @Html.HiddenFor(m => m.OrderReviewId) 
     ... 
     } 
         </text> 
        ) 
.Draggable() 
     .Visible(false) 
     .Modal(true) 
     .Render(); 
} 

事です: 最初のモデルを掲示した後、以下の記事は、常にOrderReviewIdのために前の値(最初のモデル)を格納します。 HtmlHelpersは、常にサーバーからの投稿の値を使用しますが、この場合は問題は表示されません。 投稿後、ウィンドウが閉じています。その後、新しいモデル(正しい値を持つ)がkendo windowを含む同じ部分ビューに渡され、新しいモデルでレンダリングされます。モデル。デバッグモードでは、すべてのフィールドに正しい値が表示されます。 投稿すると、OrderReviewIdの値は古い値のままです。 これはどのように可能ですか?他のフィールド(ここには表示されていません)が正しくない理由は、HtmlHelperフィールドでもあります。私はあなたが窓の前のインスタンスから残されたいくつかの成果物を持っている賭ける

おかげ

+0

私もまったく同じ振る舞い 'の' を使用しようと試みました。ポストバックはここでは問題ではないようです。 –

+0

あなたがページに来るときにまず2つのことを確認してください。あなたがURLで送信しているもの(Querystring)が壊れていて、もう1つはチェックをキャッチしています – Bharat

+0

クエリーストリングが良いです。私が言ったように、新しいモデルは実際には部分的なビューに渡されています。キャッシングをテストするにはどうすればよいですか? –

答えて

0

。閉じる後、ダイアログがdomから完全に削除されていることを確認できますか?ような何か:

if ($("#frmTest")!= null){ 
    $("#frmTest").data("kendoWindow").destroy(); 
    $("#frmTest").empty(); 
}   
+0

@ Ross Bush:まさにこの問題の原因でした。私が窓を壊した後、問題は解決されました。非常に奇妙な... –

関連する問題