«IJsonHelper» не содержит определения «Encode»

1

Я хочу преобразовать список строк в массив javascript на мой взгляд, и я нашел приведенное ниже предложение в нескольких местах в Интернете:

@model IEnumerable<DSSTools.Models.Box.BoxWhiteListUser>

@{
    var boxManager = new DSSTools.Managers.BoxManager();
    var allusers = boxManager.GetAllUsersAsync().Result.Entries.ToList().Select(u => u.Login);
}

@section Scripts {
    <script>
        var sourcearray = null;

        $(document).ready(function () {
            var arr = JSON.parse('@Html.Raw(Json.Encode(@allusers))');
        });
    </script>
}

Однако я просто раздражающе

"IJsonHelper" не содержит определения для "Encode", и не может быть найден метод расширения "Encode", принимающий первый аргумент типа "IJsonHelper" (вам не хватает директивы using или ссылки на сборку?)

Как это возможно?

Я также попробовал просто позвонить

var arr = JSON.parse('@Html.Raw(allusers)');

Но потом я получаю эту ошибку в консоли

VM189:1 Uncaught SyntaxError: Unexpected token S in JSON at position 0
    at JSON.parse (<anonymous>)
    at HTMLDocument.<anonymous> (whitelist:107)
    at fire (jquery.js:3182)
    at Object.fireWith [as resolveWith] (jquery.js:3312)
    at Function.ready (jquery.js:3531)
    at HTMLDocument.completed (jquery.js:3547)
Теги:
asp.net-core

1 ответ

1
Лучший ответ

Мне удалось сделать то, что мне было нужно с

sourcearray = JSON.parse('@Html.Raw(Json.Serialize(allusers))');
  • 5
    Я думаю, что вы можете удалить JSON.parse, если вы удалите кавычки. Следующее должно работать sourcearray = @Html.Raw(Json.Serialize(allusers));

Ещё вопросы

Сообщество Overcoder
Наверх
Меню