使用 TextBoxfor 时,数据未从局部视图绑定到模型

问题描述

在我的项目中,我们有一个局部视图,用于预订工作的详细信息。我已将新属性 WorkerID 添加到此部分视图和主视图中使用的模型。在使用 html.textBoxfor 的局部视图中,我为 workerid 添加一个字段。

型号:

    [display(Name = "Worker Name")]
    public Int32? WorkerID { get; set; }
    
    [UIHint("CheckBoxNullable")]
    [display(Name = "Confirm Client")]
    public bool ConfirmClient { get; set; }

    [UIHint("CheckBoxNullable")]
    [display(Name = "Confirm Worker")]
    public bool ConfirmWorker { get; set; }

    [UIHint("CheckBoxNullable")]
    [display(Name = "Plan")]
    public bool Plan { get; set; }

部分视图:

@model BookingsModel
<style>
div.k-edit-form-container {
    width: auto;
}
</style>
<style>
.k-textBox {
    width: 100% !important;
    height: 34px !important;
}

.form-control {
    padding: 0px 6px;
}
</style>

<div class="col-lg-11">
   <ul class="errors alert alert-danger" style="display:none;"></ul>
   <div class="form-group">
        @Html.LabelFor(model => model.ShiftName)<span class="colon">:</span>
        <label id="ShiftValue"></label>
    </div>
    <div class="form-group">
        @Html.LabelFor(model => model.StartDate)<span class="colon">:</span>
        @Html.EditorFor(model => model.StartDate)
        @Html.ValidationMessageFor(model => model.StartDate,"",new { @class = "text-danger" })
    </div>
    <div class="form-group">
        @Html.LabelFor(model => model.EndDate)<span class="colon">:</span>
        @Html.EditorFor(model => model.EndDate)
        @Html.ValidationMessageFor(model => model.EndDate,new { @class = "text-danger" })
    </div>
    
    <div class="form-group" id="AllowQuickFill">
        @Html.LabelFor(model => model.WorkerID)<span class="colon">:</span>
        @Html.EditorFor(model => model.WorkerID,new { @class = "form-control",@placeholder = "Select Worker",@style = "Width:100%;" })

        <label>Confirm Client</label><span class="colon">:</span> <input type="checkBox" id="chkConfirmClient" name="ConfirmClient" value="0" />
        <label>Confirm Worker</label><span class="colon">:</span> <input type="checkBox" id="chkConfirmWorker" name="ConfirmWorker" value="0" />
        <label>Plan</label><span class="colon">:</span> <input type="checkBox" id="chkPlan" name="Plan" value="0" />
    </div>
</div>

<script type="text/javascript">
    $(document).ready(function () {
         initializeCombo("WorkerID","/Workers/GetDataForCombo?workerStatusTypeID=3");
    });
</script>

InitializeCombo 是我们创建的一种加载下拉框的方法。在我在模型中添加的 4 个新属性中,只有 workerid 的值没有传递给控制器​​。当我运行应用程序 WorkerID 下拉列表被正确加载时,为了测试我放置了警报以在用户更改或选择任何工作人员时从下拉列表中获取值,并且它也给出了适当的通知

如果我将 workerId 从 TextBoxFor 更改为 EditorFor 那么它可以正常工作,但在这种情况下,它不允许我将模型中的 WorkerID 属性定义为可为空,并且该属性应定义为可为空的。在我的项目中,我几乎在所有我想以这种方式加载组合框的地方都使用了 TextBoxFor,它工作正常。但我无法找出为什么它在这种情况下不起作用。

问候, 萨凡帕尔马

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)