我试图用Ajax发送一些图像文件、一个数组和一个列表,但是当我在维护者中读取它时,它没有向我传递列表的值,该值为null。该程序是在vs 2022 c# mvc中开发的。我使用的代码是:
var ImagenSeleccionada1 = $("#fileProducto1")[0].files[0];
var ImagenSeleccionada2 = $("#fileProducto2")[0].files[0];
var ImagenSeleccionada3 = $("#fileProducto3")[0].files[0];
var numero = $("#txtNumero").val();
var transaccion = {
movUser : "@User.Identity.Name",
movIdTransaction: "2",
movNumero: numero,
movEntidad: $("#cbbentidad").val()
}
var lista_conceptos = [];
$("#tabla tbody tr").each(function (index) {
var concepto = $(this).find("td").eq(0).html();
var check = $(this).find("input").prop('checked');
var calificacion ="NO CUMPLE"
if (check) {
calificacion = "CUMPLE";
}
lista_conceptos.push({
movNumero: numero,
movIdTransaction: 2,
movConcepto: concepto,
movCalificacion: calificacion,
})
})
console.log(lista_conceptos)
var request = new FormData();
request.append("objeto", JSON.stringify(transaction));
request.append("listaconceptos", JSON.stringify(lista_conceptos));
request.append("archivoImagen1", ImagenSeleccionada1);
request.append("archivoImagen2", ImagenSeleccionada2);
request.append("archivoImagen3", ImagenSeleccionada3);
//SEND TRANSACTION
jQuery.ajax({
url: '@Url.Action("RegistrarInspeccion", "Transactions")',
type: "POST",
data: request,
processData: false,
contentType: false,
success: function (data) {
}
});
在控制器中,我必须接收数据的代码如下,我尝试了几种选项,最接近的是这个,对象变量向我显示了排列,但概念列表列表不包含数据,计数器为零。在维护者调用之前,可以在console.log中看到列表数据,包括请求中发送的参数。
[HttpPost]
public async Task<JsonResult> RegistrarInspeccion(string objeto, List<EntidadDetalleTransaccion> listaconceptos, HttpPostedFileBase archivoImagen1, HttpPostedFileBase archivoImagen2, HttpPostedFileBase archivoImagen3)
`
我尝试在没有 Formdata 的情况下发送数据,但图像出现错误。
我尝试将参数作为字符串传递,用逗号分隔数据,然后将字符串转换为列表,但它显示了一条错误消息 错误(活动)CS1503 参数 1:无法从 'string[]' 转换为 'int' 。 我编写的代码如下:
public async Task<jsonresult> RegistrarInspeccion(string objeto, string listaconceptos, HttpPostedFileBase archivoImagen1, HttpPostedFileBase archivoImagen2, HttpPostedFileBase archivoImagen3)
char delimiter = ',';
string[] substrings = listaconceptos.Split(delimiter);
List<entidaddetalletransaccion> myList = new
List<entidaddetalletransaccion>(substrings);
已尝试添加
[FromBody]
[HttpPost]
public async Task<JsonResult> RegistrarInspeccion(string objeto, List<EntidadDetalleTransaccion> listaconceptos, [FromBody]HttpPostedFileBase archivoImagen1, [FromBody]HttpPostedFileBase archivoImagen2, [FromBody]HttpPostedFileBase archivoImagen3)