asp.net – 如何将JsonResult对象作为字符串获取,以便我可以修改它?

前端之家收集整理的这篇文章主要介绍了asp.net – 如何将JsonResult对象作为字符串获取,以便我可以修改它?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用FlexiGrid jQuery插件,我需要从我的MVC应用程序中获取一个 JSON对象,如果FlexiGrid仅使用了对象,我需要添加一些项目,以便它与FlexiGrid一起正常工作.

所以这是我的控制器代码的一部分:

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()方法只是通过JsonResult类使用 JavaScriptSerializer类.如果您想使用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相关文章