asp.net - 如何获取JsonResult对象作为字符串,以便可以对其进行修改?

标签 asp.net asp.net-mvc json serialization

我正在使用FlexiGrid jQuery插件,我需要从我的MVC应用程序中获取一个JSON对象,如果FlexiGrid仅获取了该对象,这很简单,但是我需要在响应字符串中添加一些项目才能使其与FlexiGrid一起正常工作。

所以这是我的 Controller 代码的一部分:

If Request.QueryString("json") IsNot Nothing Then
    Dim data As New StringBuilder()
    data.Append("page: " & pageIndex & "," & vbCrLf)
    data.Append("total: " & ViewData.TotalCount & "," & vbCrLf)
    data.Append("rows: ")
    data.Append(Json(objCustomerList))

    Return Content(data.ToString())
End If

不幸的是,在上面的代码中,Json(objCustomerList)返回'System.Web.MVV.JsonResult'而不是所需的JSON字符串数据。我也尝试Json(objCustomerList).ToString()只是为了看看会发生什么并且再次发生相同的事情。

有任何想法吗?

最佳答案

ASP.NET MVC中的Json()方法仅通过JavaScriptSerializer类使用 JsonResult 类。如果您想使用JSON将objCustomerList对象序列化为字符串,则可以自己使用它。

我的建议是采取稍微不同的方法。

  • 创建一个模型,该模型表示您尝试创建的JavaScript对象的.NET等效项。也许是具有Page,Total,Rows和CustomerList属性的FlexiGridModel对象。
  • 然后,当您将FlexiGridModel传递给Json()时,它就可以工作,而无需使用StringBuilder构建JSON字符串。

  • 如果您只是想让代码正常工作,则可以使用override on JavaScriptSerializer.Serialize() 将该对象进行序列化,然后使用StringBuilder将结果附加到该对象上。这应该正是您要寻找的。

    一些相关链接:
  • JavaScriptSerializer example
  • ASP.NET MVC JsonResult source
  • Codeproject: ASP.NET MVC Flexigrid sample
  • 关于asp.net - 如何获取JsonResult对象作为字符串,以便可以对其进行修改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/313281/

    相关文章:

    c# - 如何在浏览器中编辑pdf并将其保存到服务器

    C# 7 本地函数未按预期工作且未显示任何错误

    c# - 数组的 MVC JSON 对象未正确设置

    php - 带有生成的 PHP 数组的 json_encode 中的空值

    json - 如何使用 kotlinx.serialization 部分解码 JSON 字符串?

    asp.net - LINQ to SQL 是构建模型或创建我自己的类的最佳方式吗

    c# - 链接按钮行为回发与不回发

    javascript - 显示加载进度模式不隐藏

    asp.net-mvc - 为剑道网格列绑定(bind)客户端模板中的两个字段

    javascript - 在mapbox-gl中按部分字符串设置过滤器