Me gustaría preguntar la diferencia entre llamar a la acción de Control a través de FORMULARIO html y JavaScript. Si uso NetCore, llama al método de acción y devuelve View() obj en la página Ver.
Pero cuando llamo a la misma Acción, la página web permanece en la misma página.
Por ejemplo, tiene una página de Lista de empleados donde se enumeran todos los empleados y se desea ver los detalles específicos de los empleados en la página Detalles del empleado.
Con html <form method='post' action ='EmployeeDetails'> </form> Funciona y el navegador abre la nueva página.
Pero con Javascript
function postSelectedCustomerData(path, method = 'post') { let data = { SearchText: 'SearchText1', EmpName: '1', DealsOnly: true, PageNumber: 1 } fetch("../Employee/EmployeeDetailsPost", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }).then(res => { console.log("Request complete! response:", res); }); }NOTA: Sé que puedo redirigir la página desde fetch Return con window.location.href. Pero quiero saber si hay alguna manera de llamar al método de acción con JavaScript y volver a la página del método de acción.
Cuando utiliza la funcionalidad estándar del marco <form> , el servidor envía al cliente una respuesta HTTP que el navegador interpreta como una nueva página web para cargar.
Cuando omite esto usando un simple javascript fetch , el manejo de la respuesta depende de usted. Solo desde el punto de vista de DOM (¡supongamos que solo obtiene la respuesta '200'!) Debe identificar el padre del árbol existente que será reemplazado, eliminar dicho árbol, insertar el nuevo de la respuesta.
fetch("../Employee/EmployeeDetailsPost", { method: "POST", headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }).then(res => { let parent = document.getElementById('parent'); let root = document.getElementById('root'); root.remove(); parent.append(res); }); }