在我的 Razor 视图中,我有一个包含 3 个未显示属性的表格。Id_Loaction
, Id_Level
&Id_Section
在此表上方,我为每个位置、级别和部分提供了 3 个复选框列表,并以适当的 ID 作为值。
@foreach (var section in Model.Sections)
{
<li>
<input type="checkbox" data-bind="checked: data" value="@Html.Encode(section.Value)"/>@Html.Encode(section.Text)
</li>
}
注意:section.Value
是表格行中也使用的元素的 ID
该表本身构建起来相当简单:
@foreach (var item in Model.Offers)
{
<tr data-bind="visible: data.IsChecked == true ">
<td>
@Html.DisplayFor(modelItem => item.Description)
</td>
<td>
@Html.DisplayFor(modelItem => item.Location)
</td>
<td>
@Html.DisplayFor(modelItem => item.Section.Text)
</td>
<td>
@Html.DisplayFor(modelItem => item.Section.Value)
</td>
<td>
@Html.DisplayFor(modelItem => item.Section.IsChecked)
</td>
<td>
@Html.DisplayFor(modelItem => item.Level)
</td>
<td>
@Html.ActionLink("Details", "Details", new { id=item.ID })
</td>
</tr>
}
<script type="text/javascript">
var data = @Html.Raw(Json.Encode(Model.Sections));
function FormViewModel(data) {
this.data = ko.observableArray(data);
}
window.viewModel = new FormViewModel(data);
console.log(viewModel.data());
ko.applyBindings(viewModel);
</script>
/edit:我已将代码更新为我的实际混乱。Model.Sections 是一个 ViewModel,它与用于 Model.Offers.Section 的 ViewModel 相同。两者都包含一个 Value、Text 和 IsChecked 属性。
如何比较它们并仅显示检查该部分的表格行?
请对我慢一点。亲切的问候