Asp.net 视图数据不显示在局部视图中

Asp.net 视图数据不显示在局部视图中,asp.net,asp.net-mvc,asp.net-mvc-2,Asp.net,Asp.net Mvc,Asp.net Mvc 2,大家好,我有一个返回部分视图的控制器,该控制器由ajax脚本调用。partical视图在第一次显示viewdata时没有问题,但是当第二次调用ajax脚本时,partical视图不会使用新的viewdata对其进行自我更新 控制器代码 [HttpGet] public ActionResult getPart(int id) { ViewData["partical"] = id; return PartialView("test");

大家好,我有一个返回部分视图的控制器,该控制器由ajax脚本调用。partical视图在第一次显示viewdata时没有问题,但是当第二次调用ajax脚本时,partical视图不会使用新的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"]%>

只是个测试

以及调用控制器的ajax

 <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>

$(文档).ready(函数(){
$(“#下拉列表”).change(函数(){
var课程=$(“#下拉列表>选项:选定”).attr(“值”);
$.ajax({
键入:“GET”,
url:“/Reservation/getPart”,
数据:{id:course},
成功:功能(数据){
$(“#外部框”)。替换为(数据);
}
});
});
});

可能是缓存问题。请尝试HTTP POST,而不是获取或将
ifModified
cache
选项设置为
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”).replacetwith(data)解决了该问题
$('#ExtraBox').html(数据)

可能是缓存问题。尝试HTTP POST而不是GET.TREATED两者似乎都不起作用:(尝试调试您的代码?您可以发布您得到的HTTP响应(标头等)吗?我通过添加断点进行调试,每次调用ajax脚本时,调用都会落在控制器getpart()中使用新值。但是返回的视图显示了以前的值。您可以查看HTTP响应吗?例如,在chrome上,通过网络选项卡下的
CTRL+SHIFT+I