我必须在表格中显示大量数据。很多就像一百个属性,每个属性都有一个校准等级,用户必须使用它来表示他们的知识水平。低、高、好等等。
我像这样实现了第一个
<h3>Conocimiento Informatico</h3>
<h5>Category Title</h5>
<div class="form-group">
@Html.LabelFor(model => model.IKOfficeCommunication, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.DropDownListFor(model => model.IKOfficeCommunication.LevelSkillId, new SelectList(Model.InformaticSkillLevels, "SkillLevelID", "Name"), "Select Level")
@Html.ValidationMessageFor(model => model.IKOfficeCommunication)
@Html.HiddenFor(model=>model.IKOfficeCommunication.InformaticKnowledgeId)
</div>
</div>
它奏效了。然后我说,让我们做一点调整,然后把它放到一个 div 中,我可以使用 bPopup jquery 插件隐藏和显示。我的目标不是一次显示所有 100 个属性,而是允许更清晰地查看表单。
//Here is the category title that I use as the trigger for the model popup
<h5><a href="#" onclick="$('#divIKC0').bPopup(); return false;"> @Model.InformaticKnowledgeCategories[i].Name</a></h5>
//here is the hidden div, shown with bPopup plugin
<div id="divIKC0" style="background-color: #fff; border-radius: 5px; width: 60%;">
<div class="col-md-12">
<div class="form-horizontal">
<div>
<h4>Category Title</h4>
<a href="#" onclick="$('#divIKC0').bPopup().close(); return false;" style="float: right; bottom: 30px; position: relative;">Close</a>
</div>
<div class="form-group">
@Html.LabelFor(model => model.IKOfficeCommunication, new { @class = "control-label col-md-5" })
<div class="col-md-6">
@Html.DropDownListFor(model => model.IKOfficeCommunication.LevelSkillId, new SelectList(Model.InformaticSkillLevels, "LanguageSkillLevelID", "Name"), "Nivel")
@Html.ValidationMessageFor(model => model.IKOfficeCommunication)
@Html.HiddenFor(model => model.IKOfficeCommunication.InformaticKnowledgeId)
</div>
</div>
但是现在,当模型被发送回控制器中的 post 操作时,该属性为 null。
我在视图的末尾也有这个脚本,用于在页面加载时隐藏 div。然后 bPopup 插件显示或隐藏它。
@section Scripts {
@Scripts.Render("~/bundles/jqueryval")
@Scripts.Render("~/Scripts/jquery.unobtrusive-ajax.min.js")
@Scripts.Render("~/Scripts/chosen-ajax.js")
<script type="text/javascript">
$("#divIKC0").hide();
</script>
}
为什么在隐藏 div 时模型没有加载属性?我该如何解决这个问题?