我必须在表单中显示大量数据。很多就像一百个属性,每个属性都有一个用户必须用来提高知识水平的校准等级。低,高,好,等等。
我实现了第一个这样的
<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>
它有效。然后我说,让我们做一些调整,并把它放入一个我可以隐藏和显示使用bPopup jquery插件的div。我的目标,不是一次性显示所有hundreth属性,而是允许清晰地查看表单。
//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时模型没有加载属性?我该如何解决这个问题?