我有一个应用程序只加载一次完整视图。我这样做的原因并不重要。重要的是,其余内容只会以部分视图的形式返回。除了一些内容之外,我还有一些 JSON 对象,我想通过每个 AJAX 请求在服务器之间来回传递。
有没有办法返回一个 JSON 对象,并将视图作为其属性之一?这将非常有用,并且可以节省带宽,因为我当前的解决方法是进行两个 ajax 调用,一个用于 JSON,另一个用于部分视图,这不仅需要更多时间和更多带宽,而且还需要两个单独的操作方法和服务器端的一些奇特技巧。将视图序列化为 JSON 对象可以解决我的所有问题。
实现这一目标的最佳方法是什么?这样做会有哪些缺点(如果有)?
您可以从控制器渲染视图并将其与 JSON 对象一起返回给客户端。
如果你会用我的简单将 ActionResult 呈现为字符串的帮助器 http://blog.approache.com/2010/11/render-any-aspnet-mvc-actionresult-to.html那么你的代码将如下所示:
public JsonResult DoSomething() {
var viewString = View().Capture(ControllerContext);
return new JsonResult {
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new {
time = DateTime.Now,
html = viewString
}
};
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)