Viewdata没有在局部视图中显示

时间:2012-04-03 10:37:51

标签: asp.net asp.net-mvc asp.net-mvc-2

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

1 个答案:

答案 0 :(得分:1)

可能是一个缓存问题。尝试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').replaceWith(data);更改$('#ExtraBox').html(data);已解决问题。