我正在处理一个 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);
});
});
但是,这只是作为 Model.documents 放入数组中,我认为这是因为它有多个列。感谢您的帮助!
最佳答案
将您的 C# 列表转换为 js 数组并在“更改”事件中使用它:
var jsArray = @Html.Raw(Json.Encode(Model.documents));
关于javascript - 如何将 IEnumerable 转换为 javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59460111/