Partial View not showing updated model values. Always shows existing values

1.2k Views Asked by At

Actually i tried to update the partial view content whenever i do search. So i use ajax call to achieve this. So, the values from the controller to partial view model is correct(new data), but its not binding to the view (shows existing data).

Main View

     <div class="tab-pane active" id="partialviewpage">
          @{
             Html.RenderPartial("_Details", Model);
           }
      </div>

Partial View (_Details)

   foreach (var item in Model.AllAds)
    {
       //div contents
    }

Ajax Call

   var text = 'test';
   $.ajax({
        url: '@Url.Action("Subcategory", "Category")',
        type: 'GET',
        dataType: 'JSON',
        data: { item: text },
        success: function (partialView) {
            $('#partialviewpage').html(partialView);
        },
        error: function (xhr, ajaxOptions, thrownError) {

        }
    });

Category Controller

    public ActionResult Subcategory(string item)
    {
      //Logic calling Api content goes here

      var SearchresponseData = responseMessage.Content.ReadAsStringAsync().Result;
      JavaScriptSerializer JssSearch = new JavaScriptSerializer();
      List<Result> Jsonresult =       (List<Result>)JssSearch.Deserialize(SearchresponseData, typeof(List<Result>));
      var Model= new ModelName();
        {
            Model.AllAds = new List<Result>();
            Model.AllAds = Jsonresult;
        }
      return PartialView("_Details", Model);
    }

So, What's wrong with my code and how can i modify the code to get the new model values. Any help appreciated. Thanks in advance.

1

There are 1 best solutions below

3
programtreasures On

I observed that you have used wrong variable to replace the html in success,

I have replace PartialView to partialView

 var text = 'test';
  $.ajax({
    url: '@Url.Action("Subcategory", "Category")',
    type: 'GET',
    dataType: 'JSON',
    data: { item: text },
    success: function (partialView) {
        $('#partialviewpage').html(partialView);
    },
    error: function (xhr, ajaxOptions, thrownError) {

    }
});