从一个ajax请求中渲染多个部分(asp.net mvc搜索页面)

时间:2010-07-01 00:32:31

标签: jquery asp.net-mvc-2

我有一个包含搜索栏,构面和结果列表的页面。我试图弄清楚,如果用户输入搜索或选择一个方面(向下钻取列表,如类别),刷新结果列表和方面。

我已经弄乱了模板,比如John Resig的Micro-Templating(非常酷),但它不允许我调用辅助扩展,我需要这样做。使其工作的唯一方法是在发送回来之前按下服务器上的数据。但是这些数据来自solr,所以它非常快,在开始渲染之前我宁愿不做太多。

作为一个简单的例子,这里是(sudocode)布局:

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

我想,如果他们正在打字,开始每隔几个字符或第二个字符显示结果,所以只需将数据输入结果和facets divs ......这可能与MVC2一样吗?或者我只需要使用js模板填充div html?

1 个答案:

答案 0 :(得分:2)

我最终只是将结果分成多个viewresults,并通过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);
    });
}

然后,点击的方面直接进入此方法,查询框上的计时器将查询添加到网址,并在暂停半秒后调用此方法。