none
Ejecutar action RRS feed

  • Pregunta

  • Hola, me gustaría saber como puedo hacer una llamada desde la vista a una acción en el controlador enviando un parámetro sin usar ajax. Saludos
    martes, 25 de agosto de 2015 18:48

Respuestas

  • >>realmente no entiendo lo que me dices,

    pero me pregunto, cuanto sabes de asp.net mvc ? porque si haces

    using(@Html.BeginForm("xxAction")){
    
        <input type="hidden" name="numAsiento" value="" />
    
       <input type="submit" />
    
    }



    si defines algo como esto al presionar el boton se envia el hidden al action y model binding mapea el name del hidden con el parametro del action

    public ActionResult  xxAction(int numAsiento){
    
    }

    en tu caso quizas no debas definir un boton submit sino que sera un boton simple que por medio de javascript harias

    function postAndRedirect(url, postData) {
    
    	$('#numAsiento').val(postData);
    	
    	$("form").submit();
    }

    esa seria la solucion

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Yordany15 jueves, 31 de diciembre de 2015 18:59
    miércoles, 26 de agosto de 2015 19:24

Todas las respuestas

  • Hola Yordany15,

    ¿A partir de que elemento? Button, Submit, Link

    Si por ejemplo es un enlace puedes usar el parámetro routeValues.

    @Html.ActionLink("Titulo", "MiAction", routeValues: new { ID = VALOR })

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    martes, 25 de agosto de 2015 19:04
  • >>me gustaría saber como puedo hacer una llamada desde la vista a una acción en el controlador enviando un parámetro sin usar ajax

    pero entonces tienes que hacer un submit al actiond el controller

    si en el view defines un @Html.BeginForm() y defines un <input type="submit"> entoncers realizarias el post al action

    en el Html.BeginForm() defines el action que quieres invocar

    por supuesto este lo tienes que definir con el atributo [HttpPost]

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 25 de agosto de 2015 19:29
  • Muchas gracias Leandro. Saludos
    martes, 25 de agosto de 2015 20:34
  • Gracias por tu respuesta. Saludos
    martes, 25 de agosto de 2015 20:34
  • Hola Leandro sigo sin resolver el problema, en el submit no no se como enviar un array al controlador, como podría hacerlo. Muchas gracias. Saludos
    miércoles, 26 de agosto de 2015 13:36
  • >>en el submit no no se como enviar un array al controlador

    en principio se envian solo en el mismo POST, el tema no es el envio sino el mapping con los parametros del action

    como generas en la view ese array de controles ?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 26 de agosto de 2015 13:53
  • Lo que intento hacer es  descargar los elementos seleccionados de un grid, para ello capturo el id de los elementos en el evento OnGridSelectionChanged y es esa lista la que deseo enviar al controlador, en el controlador lo descargo mediante GridViewExtension.ExportToCsv pasando los elementos a descargar. Solamente necesito enviar la lista al controller. Saludos
    miércoles, 26 de agosto de 2015 14:32
  • hola

    >>para ello capturo el id de los elementos en el evento OnGridSelectionChanged

    como que un evento ? en asp.net mvc no existe envento del lado del servidor

    o es un evento en javascript ?

    saludis


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 26 de agosto de 2015 15:34
  • Si  en javScript, ya logre hacerlo por medio del querystring de esta manera:

    function postAndRedirect(url, postData) {
            var postFormStr = "<form method='POST' action='" + url + "'>\n";
            postFormStr += "<input type='hidden' name='numAsiento' value='" + postData + "'></input>";
            postFormStr += "</form>";
            var formElement = $(postFormStr);
            $('body').append(formElement);
            $(formElement).submit();
        }

    y lo capturo en el controlador de esta forma

    var numAsiento = HttpContext.Request.Params.Get("numAsiento");

    con esto obtengo la lista de elemntos. Saludos gracias Leandro

    miércoles, 26 de agosto de 2015 15:45
  • es una pesima implementacion la que estas realizando, no se realizas de esa forma

    podrias definir el hidden directo en la view y desde javascript asignar el valor para luego enviar el submit

    ademas para tomar el valor en el action con solo definir un parametro que coicida con el hidden alcanzaba

    public ActionResult  xxAction(int numAsiento){

    }

    la verdad no se como se peude hacer tan complejo algo que resulta tan simple

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 26 de agosto de 2015 17:16
  • ok, realmente no entiendo lo que me dices, podrías ejemplificare lo que me comentas. Gracias
    miércoles, 26 de agosto de 2015 18:49
  • >>realmente no entiendo lo que me dices,

    pero me pregunto, cuanto sabes de asp.net mvc ? porque si haces

    using(@Html.BeginForm("xxAction")){
    
        <input type="hidden" name="numAsiento" value="" />
    
       <input type="submit" />
    
    }



    si defines algo como esto al presionar el boton se envia el hidden al action y model binding mapea el name del hidden con el parametro del action

    public ActionResult  xxAction(int numAsiento){
    
    }

    en tu caso quizas no debas definir un boton submit sino que sera un boton simple que por medio de javascript harias

    function postAndRedirect(url, postData) {
    
    	$('#numAsiento').val(postData);
    	
    	$("form").submit();
    }

    esa seria la solucion

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Yordany15 jueves, 31 de diciembre de 2015 18:59
    miércoles, 26 de agosto de 2015 19:24
  • Muchas gracias fuiste bien claro en tu ejemplo . saludos
    • Propuesto como respuesta felipeagm jueves, 21 de diciembre de 2017 6:45
    miércoles, 26 de agosto de 2015 21:30