MVC模型正在丢失从视图中未显示的控件中检索到的数据

时间:2014-02-14 02:39:16

标签: jquery html razor asp.net-mvc-5 bpopup

我必须在表单中显示大量数据。很多就像一百个属性,每个属性都有一个用户必须用来提高知识水平的校准等级。低,高,好,等等。

我实现了第一个这样的

    <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时模型没有加载属性?我该如何解决这个问题?

0 个答案:

没有答案