Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ASP > ASP.MVC и AJAX. Как перезагрузить View


Автор: rets 24.9.2012, 20:09
Здравствуйте. 
Очень часто натыкаюсь на проблему, но старался раньше всячески ее обходить, а вот сейчас не получилось.
Суть:
Есть Jquery обработчик на click по ссылкам:
Код

$('.city_link').click(function () {
        var id = $(this).parent().find('#cityId').val();
        var searchProduct = $('#search').val();
        var lowerPriceProduct = $('#lowerPrice').val();
        var upperPriseProduct = $('#upperPrise').val();

        $.ajax({
        type: "POST",
        url: 'Search/ProductsWhisFilters',
        data: ({ productNameFilter: searchProduct,
        lowerPrice:lowerPriceProduct,
        upperPrise: upperPriseProduct ,
        cityId : id})
            });

    });


Действительно, запрос приходит на сервер, попадает в ActionResult:
Код

public ViewResult ProductsWhisFilters(string lowerPrice, string upperPrise, string productNameFilter, int cityId)
        {
         ///весь код можно опустить, тк модель наполняется данными, все отлично.
            return View("SearchPage",currentProducts);
        }

Но при дебаге переходя через return попадаем на вьюху, проходим по ней и т.д. Все отлично. Но вот на клиенте вьюха не обновляется вообще.

Я просто не понимаю почему так происходит. Если в данный ActionResult попадаем через @Html.actionlink, то все ок. Страница возвращается клиенту. А тут страница на сервере обрабатывается, но на клиент вьюха не приходит. Объясните, почему так. Чувствую, что проблема именно в понимании запросов, но сбивает с толку то, что не работает только при посылке ajax запроса.

Автор: rets 24.9.2012, 22:45
Решил проблему. Если кому интересно, то при таком ajax запросе действительно в data (которую вы указываете в параметрах ajax запроса) мы получаем кусок html, который можно использовать, если юзать дальше $("селектор").html = data; Удобно юзать в mvc с partial view smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)