Tengo un elemento que se llama resultado escaneado que tiene una lista de códigos de barras, después de obtener todos los códigos, estoy usando querySelectorAll de los elementos que estoy guardando en una matriz de cadenas y luego envío esta lista a el controlador. ¿Qué puedo hacer para enviar este parámetro de matriz urlParameter como un método de publicación en lugar de usar window.location.href al controlador?
Cuando comience a escanear, los códigos de barras se guardarán en results.innerHTML
function startScanning(facingMode) { console.log(facingMode) var results = document.getElementById('scanned-result'); function onScanSuccess(qrCodeMessage) { if (lastMessage !== qrCodeMessage) { lastMessage = qrCodeMessage; ++codesFound; results.innerHTML += `<div> ${qrCodeMessage}</div>`; } }Cuando deje de escanear, voy a hacer que la matriz busque el elemento escaneado; el resultado es enviar la matriz al controlador. Aquí es cuando estoy atascado. No estoy seguro de lo que necesito cambiar para que envíe el parámetro como un método de publicación
function stopScanning() { var QRCodeval = document.querySelectorAll("#scanned-result>div"); var arr = []; QRCodeval.forEach((el) => arr.push(el.innerHTML)); let urlParams = arr.map((val) => { return `arr=${encodeURIComponent(val)}` }).join('&'); window.location.href = "@Url.Action("ReceivedFromBarCode", "PurchaseOrder")?arr" + urlParams; }En la Vista van a aparecer los valores en id="resultado-escaneado"
<div class="modal-footer"> <div id="scanned-result""> </div>Controlador
[HttpPost] public async Task<ActionResult> ReceivedFromBarCode(string[] arr) { try { } return RedirectToAction($"Details"); } catch (VTHIS.CommunicationException cex) { throw cex; } }