方案: 我的应用程序必须发出请求(AJAX)并根据请求多个div(这些div是PartialViews)必须在客户端上更新。如果单独制作,div或partialview可能是昂贵的电话。
思想: 请求完成后,JS将收集要使用任何参数更新的部分视图列表并发送AJAX请求。 Controller接收请求并使用TP库并行执行所有部分视图,收集渲染标记,并将响应发送回客户端,客户端在页面中绘制部分视图/ div。
挑战: 在接收到带有参数的部分视图列表后在服务器上。如何在Action方法中执行部分视图(从客户端传递的名称)并获取其标记/ json响应?
提前致谢。
答案 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片段。