Рендеринг нескольких частичных файлов из одного запроса ajax (страница поиска asp.net mvc) - PullRequest
1 голос
/ 01 июля 2010

У меня есть страница с панелью поиска, фасетами и списком результатов. Я пытаюсь выяснить, как, если пользователь вводит поиск или выбирает фасет (развернутый список, например, категории), обновить список результатов и фасетов.

Я возился с шаблонизацией, такой как Micro-Templating Джона Резига (что очень круто), но он не позволяет мне вызывать вспомогательные расширения, что мне нужно сделать. Единственный способ заставить его работать - это скопировать данные на сервере перед отправкой обратно. Но данные поступают из solr, поэтому они очень быстрые, и я бы предпочел не делать с ними ничего, прежде чем начать рендеринг.

В качестве быстрого примера, вот что-то вроде (sudocode) макета:

<form>
    <div id="query">
        <%= Html.TextBox("q")%>
    </div>
    <div id="results"/>
    <div id="facets"/>
</form>

Я бы хотел, чтобы, если они печатали, начали отображать результаты каждые несколько символов или секунд, так что просто накачайте данные в результаты и делите их на фасеты ... Это возможно с MVC2? Или мне просто нужно использовать шаблоны js для заполнения div html?

1 Ответ

2 голосов
/ 02 июля 2010

В итоге я просто разделил результаты на несколько результатов просмотра и вызвал их асинхронно через jquery, например так:

function run_search(url) {
    var search_url = url.replace('?', '/facettree?');
    $.get(search_url, function (html) {
        $('#filter').html(html);
    });
    search_url = url.replace('?', '/booksearchresults?');
    $.get(search_url, function (html) {
        $('#results-list').html(html);
    });
}

Затем щелкающие фасеты переходят прямо к этому методу и таймерув поле запроса добавляет запрос к URL и вызывает его после паузы в полсекунды.

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