none
Enviar Informacion hacia un controlador RRS feed

  • Pregunta

  • hola que tal , necesito ayuda amigos

    tengo problema al intentar realizar un filtro del controlador que me lista todos los elementos de mi tabla inmueble.Creo que es un problema de como formar un textbox + boton , que permitan al usuario buscar un determinado elemento para ser editado o eliminado , ya que el webGrid se torna interminable si tiene muchos elementos

    ejemplo :

        <p>
        @Html.ActionLink("PROBANDO", "Busq", new { id = 12 })   ------> esto funciona perfecto incluida la busqueda en el controlador
       </p>

    funciona perfecto , por ende me devolvera el ITEM.ID=12 , del controlador BUSQ.

    pero como hago que ese "new { id = 12 }" sea ingresado por el usuario , por que ahi solo funciona como un link estatito.

    por ejemplo si deseara que el controlador mostrara el id = 23 ???

    -------------------------------trate con algo asi :

    @using(Html.BeginForm("Busq", null, new { id = 12 } ))
    {
        <fieldset>
            <legend>Criterios de búsqueda</legend>
            @Html.Label("Busca", "PADRON :")
            @Html.TextBox("jaja")    
            
     
            <input type=submit value="BUSCAR" />
        </fieldset>
    }  </p>

    EL CUAL FUNCIONA PERO SIGUE SIENDO ESTATICO!!!

    no se como pasarle el parametro que ingresa el usuario.

    Soy estudiante de ingenieria y necesitaria ayuda por favor,

    domingo, 2 de septiembre de 2012 16:34

Respuestas

  • hola, si tu controlador se llama BusquedasController y la accion  se llama "Buscar" poidrias hacer algo asi:

    En el controlador:

    [HttpPost]

    public ActionResult Buscar(string valor )

    en la vista el beginForm podria ir asi:

    @using(Html.BeginForm("Buscar","Busquedas"))
    
    {
        <fieldset>
            <legend>Criterios de búsqueda</legend>
            @Html.Label("FILTRAR", "PADRON :")
            @Html.TextBox("valor")     
            <input type=submit value="Buscar" />
        </fieldset>
    }   </p>

    saludos

    • Marcado como respuesta Claudio Saravia lunes, 3 de septiembre de 2012 0:35
    domingo, 2 de septiembre de 2012 23:28

Todas las respuestas

  • Hola!

    Si tienes un formulario como este:

    @using(Html.BeginForm("Buscar")) {   
       @Html.Label("criterio")
       @Html.TextBox("criterio")   
       <input type="submit" value="Buscar" />
    }

    ... la forma ideal, y más cómoda, de recibir los valores del formulario es indicando directamente los parámetros en la acción que recibe la petición, así:

    public ActionResult Buscar(string criterio)
    {   
       ...
    }

    De esta forma, será el binder el que se encargue de inyectar un valor para el parámetro, tomándolo del contexto de la petición.

    Saludos!


    José M. Aguilar
    Variable not found

    domingo, 2 de septiembre de 2012 18:03
  • sigo sin poder realizarlo amigo. noto que eres un genio en esto y se que me ayudaras a poder evacuar mis dudas

        <p>
        @Html.ActionLink("EsteeeeeeeeR", "Busq", new { id = 1 })   ------->>> FUNCIONA perfecto PARA SOLO EL ID=1 CON , LLAMANDO A :
       </p>
    ------------------------------------------------------------------------------------------------------------------------------------------------------
               public ViewResult Busq(long id)   -------------- > CODIGO DEL CONTROLADOR EL CUAL ES LLAMADO
            {
                var inmuebles = db.Inmuebles.Include("Barrios").Include("Calles").Include("Frentes").Include("Frentes1");
                return View(inmuebles.ToList().Where( c => c.padron == id));
            }

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------

    @using(Html.BeginForm("Busq")) --------------------------------------> ESTO ESTA EN LA VISTA , LA CUAL NO FUNCIONA  : (
    {
        <fieldset>
            <legend>Criterios de búsqueda</legend>
            @Html.Label("FILTRAR", "PADRON :")
            @Html.TextBox("criterio")     
            <input type=submit value="Busq" />
        </fieldset>
    }  </p>

    TAMBIEN INTENTE ESTO QUE SUGERISTE ...

            public ActionResult Busq(string padron)   ------------------------> ESTA EN EL CONTROLADOR
            {
                var inmuebles = db.Inmuebles.Include("Barrios").Include("Calles").Include("Frentes").Include("Frentes1");
                return View(inmuebles.ToList().Where(c => c.padron == Convert.ToInt32(padron)));
            }

    PERO EN LA VISTA NO DEVUELVE SOLO ESTO EN LA BARRA DE DIRECCIONES :

    http://localhost:2904/INMUEBLE?Length=4

    ----

    pero si pongo manualmente esto en la barra de direcciones SIIIII funciona :

    http://localhost:2904/INMUEBLE/Busq/12

    si incluyo el  : public ActionResult Busq(string padron)  ... que usted me sugiere me da error ...

    he current request for action 'Busq' on controller type 'INMUEBLEController' is ambiguous between the following action methods:
    System.Web.Mvc.ViewResult Busq(Int64) on type ProgAplicada.Controllers.INMUEBLEController
    System.Web.Mvc.ActionResult Busq(System.String) on type ProgAplicada.Controllers.INMUEBLEController.

    OSEA QUE SOLO NECESITO MODIFICAR LA VISTA PARA QUE FORMULE ALGO ASI

    @Html.ActionLink("EsteeeeeeeeR", "Busq", new { id = 1 })  

    PERO CON UN FORMATO MAS PRESENTABLE COMO EL QUE NO FUNCIONA.

    ayuda por favor !

    domingo, 2 de septiembre de 2012 20:27
  • hola, creo que tu problema es que el nombre del parametro que recibes en tu controlador  ActionResult Busq(string padron)  es "padron", entonces tu textbox debe ser @Html.TextBox("padron"). En el ejemplo del maestro Aguilar el parametro se llama "criterio".

    ojala te sirva.

    saludos



    • Editado Richof domingo, 2 de septiembre de 2012 22:34
    domingo, 2 de septiembre de 2012 22:30
  • ya revise eso y no es ese el problema amigo   gracias de todas maneras

    @using(Html.BeginForm("valor"))
    {
        <fieldset>
            <legend>Criterios de búsqueda</legend>
            @Html.Label("FILTRAR", "PADRON :")
            @Html.TextBox("valor")     
            <input type=submit value="Buscar" />
        </fieldset>
    }  </p>

    domingo, 2 de septiembre de 2012 23:12
  • hola, si tu controlador se llama BusquedasController y la accion  se llama "Buscar" poidrias hacer algo asi:

    En el controlador:

    [HttpPost]

    public ActionResult Buscar(string valor )

    en la vista el beginForm podria ir asi:

    @using(Html.BeginForm("Buscar","Busquedas"))
    
    {
        <fieldset>
            <legend>Criterios de búsqueda</legend>
            @Html.Label("FILTRAR", "PADRON :")
            @Html.TextBox("valor")     
            <input type=submit value="Buscar" />
        </fieldset>
    }   </p>

    saludos

    • Marcado como respuesta Claudio Saravia lunes, 3 de septiembre de 2012 0:35
    domingo, 2 de septiembre de 2012 23:28
  • GRACIAS AMIGO, FUNCIONA .... MIL MIL GRACIAS , SOS UN GENIO !!!

    PROBLEMA SOLUCIONADO Y UN SUPER SALUDO !!!

    lunes, 3 de septiembre de 2012 0:34