基本上我正在构建一个ASP.NET MVC应用程序。我有一个搜索页面。它搜索来自许多不同来源的结果。为了提高页面加载的速度,我决定首先从一个源加载结果,然后在完成搜索其他源时动态加载更多结果。
到目前为止,我已经返回了第一组结果,并且Ajax.ActionLink工作,它在div中呈现部分视图,显示来自第二个源的结果。但显然我必须点击actionLink才能使它工作。
我想知道如何使用actionlink在页面加载时触发,以便进一步的结果自动到达?我可以在javascript / jquery中重写actionlink并在页面加载时触发它或者这种事情的最佳实践是什么?
答案 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(从未尝试过)。