Saltar al contenido

¿Cómo llamar a la acción URL en MVC con la función javascript?

Solución:

Te voy a dar 2 formas de llamar a una acción desde el lado del cliente.

primero

Si solo desea navegar a una acción, debe llamar, simplemente use el siguiente

window.location = "/Home/Index/" + youid

Notas: que su acción necesita manejar un tipo de obtención llamado

Segundo

Si necesita renderizar una vista, puede hacer la llamada por ajax

//this if you want get the html by get
public ActionResult Foo()
{
    return View(); //this return the render html   
}

Y el cliente llamó así “Suponiendo que estás usando jquery”

$.get('your controller path', parameters to the controler , function callback)

o

$.ajax({
    type: "GET",
    url: "your controller path",
    data: parameters to the controler
    dataType: "html",
    success: your function
});

o

$('your selector').load('your controller path') 

Actualizar

En su ajax llamado haga este cambio para pasar los datos a la acción

function onDropDownChange(e) {
var url="/Home/Index" 
$.ajax({
        type: "GET",
        url: url,
        data: { id = e.value}, <--sending the values to the server
        dataType: "html",
        success : function (data) {
            //put your code here
        }
    });
}

ACTUALIZACIÓN 2

No puede hacer esto en su devolución de llamada ‘windows.location’ si desea que vaya a renderizar una vista, debe poner un div en tu vista y haz algo como esto

en la vista donde estas que tienes el combo en algun lugar

<div id="theNewView"> </div> <---you're going to load the other view here

en el cliente javascript

$.ajax({
        type: "GET",
        url: url,
        data: { id = e.value}, <--sending the values to the server
        dataType: "html",
        success : function (data) {
            $('div#theNewView').html(data);
        }
    });
}

Con esto creo que resuelves tu problema

Dentro de tu onDropDownChange handler, simplemente haga una llamada jQuery AJAX, pasando cualquier dato que necesite pasar a su URL. Puede manejar llamadas exitosas y fallidas con el success y error opciones. En el success opción, utilice los datos contenidos en la data argumento para hacer cualquier renderizado que necesite hacer. Recuerde que estos son asincrónicos por defecto.

function onDropDownChange(e) {
    var url="/Home/Index/" + e.value;
    $.ajax({
      url: url,
      data: {}, //parameters go here in object literal form
      type: 'GET',
      datatype: 'json',
      success: function(data) { alert('got here with data'); },
      error: function() { alert('something bad happened'); }
    });
}

La documentación AJAX de jQuery está aquí.

tratar:

var url="/Home/Index/" + e.value;
 window.location = window.location.host + url; 

Eso debería llevarte a donde quieras.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *