2012-04-03 59 views
0

嗨,大家好,我有控制器,它返回一個局部視圖,控制器由ajax腳本調用。局部視圖在第一次顯示viewdata時沒有問題,但是當第二次調用ajax腳本時,局部視圖不會使用新的viewdata更新它自己。Viewdata未在部分視圖中顯示

爲控制器

[HttpGet] 
    public ActionResult getPart(int id) 
    { 
     ViewData["partical"] = id; 

     return PartialView("test"); 
    } 

代碼的代碼部分視圖

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PovertyBayHotel.Models.testmodel>" %> 


<p>just a test</p> 

<%: ViewData["partical"]%> 

和哪個呼叫控制器

<script type="text/javascript"> 
$(document).ready(function() { 

    $("#DropDown").change(function() { 
     var course = $("#DropDown > option:selected").attr("value"); 
     $.ajax({ 
      type: 'GET', 
      url: '/Reservation/getPart', 
      data: { id: course }, 
      success: function (data) { 

       $('#ExtraBox').replaceWith(data); 
      } 
     }); 

    }); 
}); 

</script> 
+0

可能是一個緩存問題。嘗試HTTP POST而不是GET。 – tugberk 2012-04-03 11:26:36

+0

嘗試它似乎並沒有工作:( – 2012-04-03 11:29:32

+0

試圖調試你的代碼?你可以發佈你的HTTP響應(頭等)? – tugberk 2012-04-03 11:31:19

回答

1

可能是一個緩存問題AJAX。嘗試HTTP POST而不是GET或設置ifModifiedcache選項false如下:

$("#DropDown").change(function() { 
    var course = $("#DropDown > option:selected").attr("value"); 
    $.ajax({ 
     type: 'GET', 
     ifModified: false, 
     cache: false, 
     url: '/Reservation/getPart', 
     data: { id: course }, 
     success: function (data) { 

      $('#ExtraBox').replaceWith(data); 
     } 
    }); 

此外,嘗試調試代碼,看看這世界究竟是怎麼回事。

編輯:

的問題已經解決了與$('#ExtraBox').html(data);改變$('#ExtraBox').replaceWith(data);