2011-08-19 102 views
0

我有一個ajax調用,在Mozilla和Chrome中工作正常,但在IE 9.0中沒有。代碼如下:部分視圖不會在IE 9.0中呈​​現fron ajax調用

我無法理解爲什麼myDiv沒有被刷新。保存是相應完成的,只是myDiv不會在IE9.0中刷新。

$.ajax({ 

       cache: false, 
       contentType: "application/json; charset=utf-8", 
       dataType: "html", 
       url: "@Url.Action("Save", "Employee")", 
       data: 
       { 
        Id: $("#ID").val(), 

       }, 
       success: function (data) 
       { 
         $("#myDiv").html(data);     


       }, 
       error: function (request, status, error) 
       { 
            } 
      }); 

<div id="myDiv"> 
      @{Html.RenderPartial("NewPage", Model);} 
     </div> 

NewPage.cshtml

@model MvcUI.Models.myModel 
<div id="GridDiv"> 
<table> 

</table> 
</div> 

控制器:

[Authorize] 
    public ActionResult NewPage(int Id) 
    { 
      return PartialView(new myModel(Id)); 
    } 

    [Authorize] 
    public ActionResult Save(int Id) 
    { 

     myModel.Save(Id); 
     return RedirectToAction("NewPage", new {Id = Id}); 

    } 

觀察 我一直在做各種測試和觀察以下行爲: 在調試模式:1. 第一次我不保存,保存完成,表刷新。 2.第二次,保存完成並刷新表格。 3.當我第四次做,保存完成,但沒有達到ActionResult NewPage(int Id),表不刷新,但一些舊數據顯示...!

部署模式: 1.只有第一次保存,保存完成並刷新表格。 2.第二次,它只保存但不刷新表格數據!

我沒有任何錯誤或異常。

+0

如果你把alert(錯誤)放在錯誤處理程序中,它會在IE中被觸發嗎? – Henry

+0

沒有錯誤,它不屬於錯誤功能 – learning

+0

如果使用開發人員工具,請求中是否返回頁面的內容? – Henry

回答

1

您是否嘗試過設置響應過期標頭?我曾在那裏IE沒有出現重新加載頁面時,你不設置了以下問題:

<% Response.CacheControl = "no-cache" %> 
<% Response.AddHeader "Pragma", "no-cache" %> 
<% Response.Expires = -1 %> 

我把它們放在ASP標籤,但隨時如果你喜歡這樣做在你的控制器(而不是在每一個動作重複一遍,可能創建一個初始化方法)

編輯:

按@學習的評論,還可以使用OutputCache屬性有效地做同樣的事情

[OutputCache(Duration = 0)] 
+0

我用[OutputCache(Duration = 0)]解決了這個問題 – learning

+0

很好。剛看了[OutputCache()],發現它有效地做了同樣的事情,但更加整潔。很高興你解決了它。 –