Как сделать go из списка объектов в c# (синтаксис Razor) в массив или объект в javascript? - PullRequest
0 голосов
/ 29 апреля 2020

Сериализация с использованием Newtonsoft. Json создает текст json успешно:

@model IEnumerable<CardGameApp.RootObject>

@{
    ViewData["Title"] = "Game";
    Layout = "~/views/Shared/_Layout.cshtml";

    List<CardGameApp.RootObject> deck1 = Model.Take(40).ToList();
    List<CardGameApp.RootObject> deck2 = Model.Skip(40).ToList();

    var json1 = Newtonsoft.Json.JsonConvert.SerializeObject(deck1); 
    var json2 = Newtonsoft.Json.JsonConvert.SerializeObject(deck2);
}

В то время как 2-е задание выдает ошибку типа:

Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse ()
var _deck1 = JSON.parse(@Html.Raw(json1));
var _deck2 = JSON.parse(@Html.Raw(json2));

И если я поставлю '' в круглых скобках, как это:

var _deck1 = JSON.parse('@Html.Raw(json1)');
var _deck2 = JSON.parse('@Html.Raw(json2)');

Выдает ошибку вроде:

Uncaught SyntaxError: missing ) after argument list.

Любой совет будет полезным!

1 Ответ

0 голосов
/ 30 апреля 2020

Поскольку JSON является действительным JavaScript кодом, все, что вам нужно сделать в JavaScript, это:

var _deck1 = @Html.Raw(json1);
var _deck2 = @Html.Raw(json2);

По сути, JSON становится литералом объекта JavaScript в вашем тег script.

...