执行多个返回一个ActionResult

时间:2011-09-08 01:15:36

标签: ajax asp.net-mvc-3

方案: 我的应用程序必须发出请求(AJAX)并根据请求多个div(这些div是PartialViews)必须在客户端上更新。如果单独制作,div或partialview可能是昂贵的电话。

思想: 请求完成后,JS将收集要使用任何参数更新的部分视图列表并发送AJAX请求。 Controller接收请求并使用TP库并行执行所有部分视图,收集渲染标记,并将响应发送回客户端,客户端在页面中绘制部分视图/ div。

挑战: 在接收到带有参数的部分视图列表后在服务器上。如何在Action方法中执行部分视图(从客户端传递的名称)并获取其标记/ json响应?

提前致谢。

1 个答案:

答案 0 :(得分:3)

使用此问题的代码获取HtmlHelper:
Using HtmlHelper in a Controller

public static HtmlHelper GetHtmlHelper(this Controller controller)
{
    var viewContext = new ViewContext(controller.ControllerContext, new FakeView(), controller.ViewData, controller.TempData, TextWriter.Null);
    return new HtmlHelper(viewContext, new ViewPage());
}

public class FakeView : IView
{
    public void Render(ViewContext viewContext, TextWriter writer)
    {
        throw new InvalidOperationException();
    }
}

然后在你的控制器动作方法中:

var helper = GetHtmlHelper(this);
var html1 = helper.Partial("PartialView1");
var html2 = helper.Partial("PartialView2");

然后以适合您的任何格式返回HTML片段。