Я хочу преобразовать список строк в массив 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)
Мне удалось сделать то, что мне было нужно с
sourcearray = JSON.parse('@Html.Raw(Json.Serialize(allusers))');
sourcearray = @Html.Raw(Json.Serialize(allusers));