gpt4 book ai didi

javascript - 为什么我在 Controller 中得到一个为 0 的 int[] 元素,而 ajax 调用发送的是 null?

转载 作者:行者123 更新时间:2023-11-28 19:29:37 25 4
gpt4 key购买 nike

当表单不包含所选项目时,它会创建一个表,其中一个项目为0,如何优雅地删除它?哪里?

JS:

$(document).on('click', '#submitButton', function () {
showLoader();
$.ajax({
url: "@Url.Action("Search", "Home")",
cache: false,
type: "POST",
dataType: "html",
traditional: true,
data: { secteurs: $("#secteursDiffusion").val(), auditeurs: $("#auditeursDiffusion").val(), audites: $("#auditesDiffusion").val(), services: $("#servicesDiffusion").val() },
success: function (result) {
$("#resultPlaceholder").html(result);
}
});
});

此时,当我在控制台 $("#secteursDiffusion").val() 中进行评估时,我可以看到在 $("#secteursDiffusion") 中选择的项目,OK(结果:["676"])!当我在控制台中评估 $("#auditesDiffusion").val() 时,这是 null (结果:null),所以一切正常。

在 Controller 中:

public ActionResult Search(int[] secteurs, int[] auditeurs, int[] audites, int[] services)
{ ... }

当我在 Controller 中断点时,我收到了审核(在控制台中评估为空),其中一项为 0,为什么?如何优雅地去除它?

enter image description here

提前致谢

编辑:

一个输入的 HTML 代码:

<select data-placeholder="Ajoutez un ou plusieurs secteurs" id="secteursDiffusion" multiple="multiple" name="secteursDiffusion">
<option value="992379">item55</option>
<option value="993147">item56</option>
<option value="996096">item57</option>
<option value="33033095">item58</option>
</select>

编辑2:使用int?[]同样的问题: enter image description here

最佳答案

虽然值为null您仍在为 audites 传递一些值。由于它不是数组,MVC 认为您正在传递 int值,因此将其设置为其默认值 - 0 (正如 Stephen 指出的,这是 DefaultModelBinder 的行为)。

你需要确保传递一个数组,所以如果是null ,发送[]相反 - 请注意 audites然后变成null在 Controller 操作中,而不是空数组,但这比 [0] 更有意义:

$(document).on('click', '#submitButton', function () {
showLoader();
$.ajax({
url: "@Url.Action("Search", "Home")",
cache: false,
type: "POST",
dataType: "html",
traditional: true,
data: {
secteurs: $("#secteursDiffusion").val() || [],
auditeurs: $("#auditeursDiffusion").val() || [],
audites: $("#auditesDiffusion").val() || [],
services: $("#servicesDiffusion").val() || []
},
success: function (result) {
$("#resultPlaceholder").html(result);
}
});
});

关于javascript - 为什么我在 Controller 中得到一个为 0 的 int[] 元素,而 ajax 调用发送的是 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27124972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com