¿Cómo puedo obtener datos alternativos en forma extraña/incluso dentro del método de acción usando c# MVC?

Quiero datos alternativos para guardar en la base de datos, ya que tengo campos de adición dinámicos hechos con la etiqueta de entrada html abajo está mi código en Controller, estoy recibiendo datos en el parámetro de lista en forma de array. ¿Alguien puede ayudarme qué será la lógica que debería poner?

    [HttpPost]
    public JsonResult Create(DTab[] list)
    {

        foreach (DTab d in list)
        {

            //DTab[] dTabs = new DTab[];
            DTabViewModel dTabViewModel = new DTabViewModel();
            dTabViewModel.Name = d.Name;
            dTabViewModel.Email = d.Email;
            dTabViewModel.Number = d.Number;
            db.DTabs.Add(d);
            db.SaveChanges();


        }
        return Json(list, JsonRequestBehavior.AllowGet);
    }

Pregunta hecha hace 3 años, 4 meses, 27 días - Por codealchemyf00f


3 Respuestas:

  • Pruebe con el siguiente código

        [HttpPost]
        public JsonResult Create(DTab[] list)
        {
            int a = 1; //set value as 1 and then increment 
            foreach (DTab d in list)
            {
               
                //DTab[] dTabs = new DTab[];
                DTabViewModel dTabViewModel = new DTabViewModel();                      
                dTabViewModel.Name = d.Name;
                dTabViewModel.Email = d.Email;
                dTabViewModel.Number = d.Number;
                //n(n+1)
                if(a%2 == 0)  // for even number set this condition
                {
                    db.DTabs.Add(d);
                    db.SaveChanges();
                }
                a++; 
            
            }
            return Json(list, JsonRequestBehavior.AllowGet);
        }
    

    if(a%2 == 0) significa que el bucle es verdad (i.e. should run the code inside it)cuando el valor de n es un número que cuando dividido por 2 no tiene ningún resto, es decir, cualquier número uniforme.

    Igual. if(a%2 == 1) significa cualquier número extraño

    Respondida el Dec 18, 2020 a las 12:33 - por binarybard

    Votos positivos: 0 | Votos negativos: 0

  • Para obtener datos alternativos de forma extraña o incluso dentro del método de acción en un controlador MVC en C

    , puedes agregar campos adicionales en tu modelo de vista y enviar esos datos desde el frontend junto con los datos dinámicos de los campos de entrada.

    Por ejemplo, podrías modificar tu modelo DTabViewModel para incluir un campo adicional llamado StrangeData y luego agregar ese campo en tus campos de entrada del formulario en tu vista. Luego, en tu controlador, puedes acceder a esos datos adicionales y procesarlos junto con los datos dinámicos.

    Aquí tienes un ejemplo de cómo podrías modificar tu método Create en tu controlador:

    csharp
    [HttpPost]
    public JsonResult Create(DTab[] list, string strangeData)
    {
        foreach (DTab d in list)
        {
            DTabViewModel dTabViewModel = new DTabViewModel();
            dTabViewModel.Name = d.Name;
            dTabViewModel.Email = d.Email;
            dTabViewModel.Number = d.Number;
    
            // Acceder a los datos extraños
            dTabViewModel.StrangeData = strangeData;
    
            db.DTabs.Add(d);
            db.SaveChanges();
        }
        return Json(list, JsonRequestBehavior.AllowGet);
    }
    

    En la vista, asegúrate de incluir un campo de entrada para enviar el dato adicional junto con los datos dinámicos. Por ejemplo, podrías agregar un campo de entrada de texto con el nombre strangeData:

    html
    
    

    De esta forma, puedes incluir y procesar datos alternativos de forma extraña dentro de tu método de acción en el controlador. ¡Espero que esto te sea útil!

    Respondida el Dec 19, 2020 a las 12:29 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para obtener datos alternativos en forma extraña/par dentro del método de acción usando C

    MVC, puedes utilizar la propiedad Request.Form["key"] para acceder a los valores de los campos de entrada HTML.

    Aquí tienes un ejemplo modificado de tu código que muestra cómo obtener los datos alternativos y guardarlos en la base de datos:

    csharp
    [HttpPost]
    public JsonResult Create()
    {
        // Obtener los datos alternativos de los campos de entrada HTML
        var name = Request.Form["Name"];
        var email = Request.Form["Email"];
        var number = Request.Form["Number"];
    
        // Crear un nuevo objeto DTabViewModel
        DTabViewModel dTabViewModel = new DTabViewModel();
    
        // Establecer las propiedades del objeto DTabViewModel con los valores alternativos
        dTabViewModel.Name = name;
        dTabViewModel.Email = email;
        dTabViewModel.Number = number;
    
        // Añadir el objeto DTabViewModel a la base de datos
        db.DTabs.Add(dTabViewModel);
        db.SaveChanges();
    
        // Devolver el objeto DTabViewModel como JSON
        return Json(dTabViewModel, JsonRequestBehavior.AllowGet);
    }
    

    Nota: Este código asume que los campos de entrada HTML tienen los nombres "Name", "Email" y "Number", y que se envían al método de acción mediante una solicitud POST. Si utilizas nombres de campo diferentes, asegúrate de modificar el código en consecuencia.

    Respondida el Dec 19, 2020 a las 12:33 - por Gemini

    Votos positivos: 0 | Votos negativos: 0