2010-05-12 33 views
0

這裏是代碼我使用的設置形式:阿賈克斯BeginForm張貼到返回JSON的動作,IE嘗試下載它

 <% using (Ajax.BeginForm("SaveCroppedPhoto", new { Id = Model.memberId.GetValueOrDefault() }, new AjaxOptions 
                   { 
                    OnBegin = "ProfileOnBegin", 
                    OnComplete = "ProfileOnComplete", 
                    OnFailure = "ProfileOnFailure", 
                    OnSuccess = "ProfileOnSuccess" 
                   }, new { id = "cropPhotoForm" })) {%> 

我的行動結果返回一個JSON結果如下:

return Json(new { success }); 

在IE8操作返回時,它會嘗試下載結果。返回的內容類型是application/json。任何人有任何想法如何阻止IE試圖下載結果?

一些額外的信息: 我剛剛在小提琴手注意到,當我保存時,兩個請求是對動作進行的。試圖找出現在。我猜這是問題的原因。

回答

1

我試圖調用$(frm).submit(),所以它導致ajax後加一個普通的職位。這就是它試圖下載json的原因。我的錯。

我解決了這個問題,方法是在窗體上添加一個隱藏的提交按鈕並在javascript中觸發點擊事件。

0

你應該通過在不顯眼的AJAX切換:

<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.min.js")" type="text/javascript"></script>