none
Parametros MVC 4 C# RRS feed

  • Pregunta

  • Buenas tardes,

    Estoy haciendo un webservice y en el controller estoy poniendo la validación de parametros lo cuál hay una parte que no estoy sabiendo como hacerlo. Por ejemplo el string tipo_archivo 1=archivos, tipo_archivo 2=libro.

    dependiendo el tipo_archivo que ponga en el url segun eso filtre por su busqueda, es posible?

    public string Archivos(string archivos, string usuario, string tipo_archivo, string libro)

    {

    if (String.IsNullOrEmpty(archivos) || String.IsNullOrEmpty(usuario) || String.IsNullOrEmpty(tipo_archivo)

    {

    respuesta = "";

    return respuesta;

    }

    else (String.IsNullOrEmpty(libro) || String.IsNullOrEmpty(usuario) || String.IsNullOrEmpty(tipo_archivo)

    {

    respuesta = "";

    return respuesta;

    }

    Gracias.


    Vicente Aguilar

    lunes, 26 de octubre de 2015 18:29

Respuestas

  • >>uso el ado.net entity framework

    deberias haber mencionado eso desde el principio

    podrias usar

    string tipo = tipo_archivo == 1 ? "archivo" : "libro";
    
    var consultaArchivos = (from  c in db.ejemplo
                             where c.etc == tipo
                             select c)


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Sergio ParraModerator lunes, 26 de octubre de 2015 21:44
    • Marcado como respuesta Vicente93 lunes, 2 de noviembre de 2015 19:50
    lunes, 26 de octubre de 2015 20:06

Todas las respuestas

  • hola

    pero que es lo que tiene que filtrar ?

    lo que no comentas es cual es el origen de datos al cual debes aplicarle el filtro

    ademas no entiendo porque implementas la validacion de if para ver si hay parametro nulos dos veces

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 26 de octubre de 2015 19:05
  • la validación if era una suposición que se me ocurrió para ver si era factible y lo que yo quisiera es que en la vista de una base de datos donde se contiene tablas de archivos y libros. Si yo pusiera tipo_archivo = 1 busque todo lo que contenga la palabra archivo y 2 todo lo que sea libro.

    parametro

    http://locahost/1/Archivos?usuario=juan&tipo_archivo=1

    Detalle: Archivos, etc.

    http://localhost/1/Archivos?usuario=juan&tipo_archivo=2

    Detalle: Libros, etc.


    Vicente Aguilar

    lunes, 26 de octubre de 2015 19:38
  • hola

    >>lo que yo quisiera es que en la vista de una base de datos donde se contiene tablas de archivos y libros

    pero como invocas la vista de la db ?

    porque si defiens un query con parametro podrias usar parametro enviando un valor u otro

    en el parametro asignas

    cmd.Parameters.AddWithValue("@tipo", tipo_archivo == 1 ? "archivo" : "libro");

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 26 de octubre de 2015 19:58
  • Hola

    Lo que tu pides es factible tecnicamente, ahi ya depende de tu logica, si lo unico que necesitas es dependiendo del tipo de archive cambie el where podrias hacer esto.

    string strQuery="select * from vista where 1=1";
    
    if (tipo_archivo==1){
     strQuery+=" and archiv0='"+usuario+"'";
    }
    else if(tipo_archivo==2){
    strQuery+=" and libro='"+usuario+"'";
    }
    //tu demas codigo

    Saludos

    lunes, 26 de octubre de 2015 20:00
  • uso el ado.net entity framework

    Entities db = new Entities();

    var consultaArchivos = (from  c in db.ejemplo where c.etc select c)


    Vicente Aguilar

    lunes, 26 de octubre de 2015 20:01
  • >>uso el ado.net entity framework

    deberias haber mencionado eso desde el principio

    podrias usar

    string tipo = tipo_archivo == 1 ? "archivo" : "libro";
    
    var consultaArchivos = (from  c in db.ejemplo
                             where c.etc == tipo
                             select c)


    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Propuesto como respuesta Sergio ParraModerator lunes, 26 de octubre de 2015 21:44
    • Marcado como respuesta Vicente93 lunes, 2 de noviembre de 2015 19:50
    lunes, 26 de octubre de 2015 20:06
  • Ambos ejemplos funcionan perfectamento.

    Gracias muchachos


    Vicente Aguilar

    lunes, 26 de octubre de 2015 20:26