页面加载时的Ajax actionlink

时间:2010-02-18 15:01:40

标签: asp.net asp.net-mvc ajax asp.net-ajax jquery

基本上我正在构建一个ASP.NET MVC应用程序。我有一个搜索页面。它搜索来自许多不同来源的结果。为了提高页面加载的速度,我决定首先从一个源加载结果,然后在完成搜索其他源时动态加载更多结果。

到目前为止,我已经返回了第一组结果,并且Ajax.ActionLink工作,它在div中呈现部分视图,显示来自第二个源的结果。但显然我必须点击actionLink才能使它工作。

我想知道如何使用actionlink在页面加载时触发,以便进一步的结果自动到达?我可以在javascript / jquery中重写actionlink并在页面加载时触发它或者这种事情的最佳实践是什么?

2 个答案:

答案 0 :(得分:3)

我已经使用JQuery动态加载UI:

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

您可以让您的操作返回部分视图以进行注入:

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

此外,您可能希望查看MVC期货中的内容,如AsyncController或RenderAtion帮助方法(尽管RenderAction不是动态的)。也许其中一些项目也可能有用。没有亲自使用它们。

HTH。

答案 1 :(得分:0)

我真的不明白你的问题,你想在结果准备好后立即更新结果窗格?我认为你的方法不正确,你如何检索你在之前的请求中开始的搜索结果?我建议要么从客户端发出不同的异步请求(每个请求查询每个不同的源),要么使用push-ajax(从未尝试过)。