加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 将IQueryable泛型转换为JSON

发布时间:2020-12-15 20:58:39 所属栏目:asp.Net 来源:网络整理
导读:我通过以下方式制作投影: var query = from book in books select new { label = book.Title,value = book.ID }; 在我的剃刀页面中,我需要使用: var booksArray = [{ @(json) }]; 这样得到的数组看起来像: label: 'c++',value: 'c++'},{label: 'java',val
我通过以下方式制作投影:
var query = from book in books
    select new
    {
        label = book.Title,value = book.ID
    };

在我的剃刀页面中,我需要使用:

var booksArray = [{
        @(json)
    }];

这样得到的数组看起来像:

label: 'c++',value: 'c++'
},{
label: 'java',value: 'java'
},{
label: 'php',value: 'php'
},{
label: 'coldfusion',value: 'coldfusion'
}

我从几种不同的方法非常接近 – 我可以得到一个在服务器端看起来正确的字符串,但当呈现给页面本身时,所有’标记变为' .

但专注于通过JSON.net实现这一目标……

最可能的方法似乎应该是:

var json = JsonConvert.ToString(query);

但那扔了:

Unsupported type: System.Linq.Enumerable+WhereSelectListIterator`2[Project.Entity.Book,<>f__AnonymousType3`2[System.String,System.Int32]]. Use the JsonSerializer class to get the object's JSON representation.

什么是正确的JSON.net语法?

谢谢

解决方法

您需要 .ToArray()和 Html.Raw()的组合

ToArray()来评估查询并使JsonConvert满意

var query = from book in books
    select new
    {
        label = book.Title,value = book.ID
    };

var json = JsonConvert.SerializeObject(query.ToArray());

注意:如果要序列化复杂类型,则需要使用JsonConvert.SerializeObject. JsonConvert.ToString用于转换简单类型,如bool,guid,int,uri等.

并在您的视图Html.Raw不html编码JSON:

var booksArray = @(Html.Raw(json))

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读