asp.net-mvc - 返回 View 作为 JSON 对象的一部分

标签 asp.net-mvc ajax json jquery

我有一个应用程序只加载一次完整 View 。我这样做的原因并不重要。重要的是,其余内容只会以部分 View 的形式返回。除了一些内容之外,我还有一些 JSON 对象,我想通过每个 AJAX 请求在服务器之间来回传递。

有没有办法返回一个 JSON 对象,并将 View 作为其属性之一?这将非常有用,并且可以节省带宽,因为我当前的解决方法是进行两个 ajax 调用,一个用于 JSON,另一个用于部分 View ,这不仅需要更多时间和更多带宽,而且还需要两个单独的操作方法和服务器端的一些奇特技巧。将 View 序列化为 JSON 对象可以解决我的所有问题。

实现这一目标的最佳方法是什么?这样做会有哪些缺点(如果有)?

最佳答案

您可以从 Controller 渲染 View 并将其与 JSON 对象一起返回给客户端。

如果你会使用我的简单helper to render ActionResult to a string那么你的代码将如下所示:

public JsonResult DoSomething() {
    var viewString = View().Capture(ControllerContext);
    return new JsonResult {
        JsonRequestBehavior = JsonRequestBehavior.AllowGet,
        Data = new {
            time = DateTime.Now,
            html = viewString
        }
    };
}

关于asp.net-mvc - 返回 View 作为 JSON 对象的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4150198/

相关文章:

jquery - 如何从 MVC 中的主视图内部刷新/重新加载部分 View

Javascript 内联下拉列表

c# - 从数据库更新 Entity Framework 模型,无法识别自定义属性

php - (Ajax + PHP)我的 Google map 消失了

ajax - 必应图片搜索分页-无限滚动

jQuery ajaxSetup beforeSend 在 IE8 中未执行

Jquery 验证不能正确验证数字?

ruby-on-rails - 在 ruby​​ 中解析一个巨大的 JSON 文件的最佳方法

json - 使用 AWS Glue 爬网程序/分类器/ETL 作业将带有数组的 JSON 展平

javascript - 使用 puppeteer 进行 JS 网页抓取,出现此错误 : (node:12121) UnhandledPromiseRejectionWarning: TypeError: src. jsonValue 不是函数