Ajax actionlink при загрузке страницы - PullRequest
1 голос
/ 18 февраля 2010

По сути, я создаю приложение ASP.NET MVC. У меня есть страница поиска. Он ищет результаты из разных источников. Чтобы ускорить загрузку страницы, я решил сначала загрузить результаты из одного источника, а затем динамически загружать больше результатов, когда он завершает поиск в других источниках.

Пока у меня есть первый набор возвращенных результатов и работает Ajax.ActionLink, который отображает частичное представление в div, которое показывает результаты из второго источника. Однако, очевидно, я должен нажать на actionLink, чтобы заставить его работать.

Что мне интересно, так это как использовать actionlink для запуска загрузки страницы, чтобы дальнейшие результаты приходили автоматически? Могу ли я переписать actionlink в javascript / jquery и запустить его при загрузке страницы или каков лучший метод для такого рода вещей?

Ответы [ 2 ]

3 голосов
/ 18 февраля 2010

Я использовал JQuery для динамической загрузки интерфейса:

$.get("/controller/action", function(html) {
   //insert Html into page
   $("#rootelement").html(html);
});

Вы можете сделать так, чтобы ваше действие вернуло частичное представление для ввода:

public ActionResult Act()
{
    return PartialView("SomeView");
}

Кроме того, вы можете захотеть взглянуть на такие вещи во фьючерсе MVC, как AsyncController или вспомогательный метод RenderAtion (хотя RenderAction не является динамическим). Может быть, некоторые из этих предметов могут работать тоже. Не использовал их лично.

НТН.

0 голосов
/ 18 февраля 2010

Я действительно не понимаю, в чем вопрос, вы хотите обновить панель результатов, как только результаты будут готовы? Я думаю, что ваш подход не правильный, как вы собираетесь получать результаты поиска, который вы начали в предыдущем запросе? Я бы предложил либо запускать разные асинхронные запросы со стороны клиента (каждый из которых запрашивал каждый из разных источников), либо использовать что-то вроде push-ajax (никогда не пробовал).

...