点击更新按钮无法将数据选中填充至@Html.DropDownListFor
问题分析与解决
核心问题
你遇到的问题本质是:
- 下拉列表(DropdownList)需要通过选项的Value值来选中对应项,但你当前用客户/产品的显示文本(比如
Hasan Ali Caner KALDIRIM)赋值,和下拉框选项的Value(musteriID/urunID)不匹配,所以无法选中。 - 日期格式不兼容:按钮的
data-date是1.01.2023 00:00:00,但日期输入框要求yyyy-MM-dd格式。 - JavaScript代码存在语法错误(缺少闭合的
}),可能导致逻辑未执行。
具体修复步骤
1. 修改按钮的Data属性,传递ID而非文本
把按钮里的客户/产品名称换成对应的ID,同时统一日期格式:
<button type="button" class="btn btn-success btn-update" data-id="@item.bakim_id" data-customer-id="@item.musteriID" data-product-id="@item.urunID" data-date="@item.alinanTarih.ToString("yyyy-MM-dd")" data-month="@item.ay"> <i class="fas fa-edit"></i> </button>
2. 修正JavaScript逻辑,补全语法错误
修改JS代码,给下拉框赋值对应的ID,同时修复日期格式问题:
function openModal(isUpdate) { let modalTitle; if (isUpdate) { modalTitle = "Bakım Güncelle"; $("#crud_type").val("update"); } else { modalTitle = "Yeni Bakım Ekle"; $("#crud_type").val("insert"); } $('#insertUpdateModalLongTitle').text(modalTitle); $('#insertUpdateModal').modal('show'); } // 新增按钮事件 $(document).on('click', '.btn-new', function () { openModal(false); }); // 更新按钮事件 $(document).on('click', '.btn-update', function () { openModal(true); const $btn = $(this); $("#repair_id").val($btn.data("id")); // 用客户ID选中下拉框选项 $("#repairCustomerInput").val($btn.data("customer-id")); // 用产品ID选中下拉框选项 $("#repairProductInput").val($btn.data("product-id")); // 赋值格式化后的日期 $("#repairDateInput").val($btn.data("date")); // 处理月份下拉框 const monthVal = $btn.data("month"); $("#repairMonthInput").val(monthVal === 0 ? "" : monthVal); });
3. 处理月份下拉框的特殊值
如果后端返回的item.ay是0,但你的月份下拉框没有Value为0的选项,需要在JS中做兼容(比如默认选中空选项),或者后端确保返回的月份值是3/6/9/12中的一个。
验证要点
- 查看浏览器渲染后的按钮,确认
data-customer-id、data-product-id的值和下拉框选项的Value一致。 - 检查日期格式是否为
yyyy-MM-dd,和输入框的type="date"要求匹配。 - 打开浏览器控制台,确认没有JavaScript语法错误。
内容的提问来源于stack exchange,提问作者krautcez
相关产品推荐
相关产品推荐

