如何将 IEnumerable 转换为 JavaScript 数组

Dom*_*ord 4 javascript asp.net-mvc

我正在开发一个 MVC 5 项目,并且有两个数据列表。一个保存文档列表,另一个保存格式信息。我想要实现的是,当我选择其中一个文档时,格式列表将被过滤为适用于该文档的格式。所以我的想法是将我的@Model.documents并将其存储到一个数组中,这样我就可以查找文档 ID。

 <input list="doc" id="document" />
                    <datalist id="doc" name="Doc" placeholder="Please select a document type">
                        @foreach (var item in Model.docType)
                        {
                            <option id="@item.DocumentTypeID" value="@item.DocumentTypeName"></option>
                        }
                    </datalist>

<input list="tribute" />
                    <datalist id="format">
                        @foreach (var item in Model.format)
                        {
                            <option value="@item.formatName"></option>
                        }
                    </datalist>

$(document).ready(function () {
        $('#document').change(function () {
            var x = $("#doc option[value='" + $('#document').val() + "']").attr('id');

            var trib = [];

            @foreach (var d in Model.documents)
            {
                @:trib.push("@d");
            }
            console.log(trib);
        });
    });
Run Code Online (Sandbox Code Playgroud)

然而,这只是作为 Model.documents 放入数组中,我认为这是因为它有多列。任何帮助表示感谢,谢谢!

Rom*_*lko 5

将 C# 列表转换为 js 数组并在“change”事件中使用它:

var jsArray = @Html.Raw(Json.Encode(Model.documents));
Run Code Online (Sandbox Code Playgroud)