2012-04-03 60 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);