Viewdata не отображается в частичном представлении - PullRequest
0 голосов
/ 03 апреля 2012

Привет, ребята, у меня есть контроллер, который возвращает частичное представление, контроллер вызывается скриптом ajax.В частичном представлении не возникает проблем с отображением видовых данных в первый раз, но когда ajax-скрипт вызывается во второй раз, частичный вид не обновляет сам себя новыми видовыми данными.

код для контроллера

   [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 Ответ

1 голос
/ 03 апреля 2012

Может быть проблема с кешированием.Попробуйте HTTP POST вместо GET или установите для параметров 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').replaceWith(data); с $('#ExtraBox').html(data);.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...