Creare una List ienumerable

di il
7 risposte

Creare una List ienumerable

Salve a tutti, so che questo quesito potrebbe essere molto banale, ma sono alle primissime armi con asp net.
ho creato un controller per popolare un view con un nuovo record e considerando che il mio progetto è collegato al mio database sql server ho scritto questo codice che funziona normalmente
            if (CheckVoce == 0)
            {
                var NuovaVoce =  await context.DipendentiVociAccessorie.FromSqlRaw("SELECT Listini.ID AS IDListino, " +
                "DipendentiInListino.ID AS IDDipendenteInListino, Accessori.Id AS IDAccessorio, CONVERT(TINYINT, 0.0) AS Ordine, " +
                "Accessori.Codice AS CodiceVoce, Denominazione AS DescrizioneVoce, CONVERT(real,0) AS Valore, Aliquota, Competenza, " +
                "ImportoCau00, ImportoCau10, ImportoCau20 " +
                "FROM Listini INNER JOIN DipendentiInListino ON Listini.ID = DipendentiInListino.IDListino CROSS JOIN Accessori " +
                "WHERE(Listini.ID='" + IdListino + "') AND (DipendentiInListino.ID='" + IdDipendente + "') AND (Accessori.Codice=0) " +
                "ORDER BY Ordine").AsNoTracking().ToListAsync();

                return View(NuovaVoce);
            }
Tutto ok funziona correttamente
Ora vorrei imparare a popolare la view vuota tramite c#

quindi ho modificato il codice così

            if (CheckVoce == 0)
            {
                var NuovaVoce = new DipendenteVociAccessorie()
                {
                    IDListino = IdListino,
                    IddipendenteInListino = (Guid)IdDipendente,
                    Idaccessorio = Guid.Parse("00000000-0000-0000-0000-000000000000"),
                    Ordine = 0,
                    CodiceVoce = 0,
                    DescrizioneVoce = "vuota",
                    Valore = 0,
                    Aliquota = false,
                    Competenza = false,
                    ImportoCau00 = 0,
                    ImportoCau10 = 0,
                    ImportoCau20 = 0,
                };
                return View(NuovaVoce);
            }
ma ovviamente non funziona dice che la view vuole un model item ienumerable.

quindi la mia domanda è come faccio una List dando i valori che voglio senza andarli a prendere dal database?
grazie a chiunque mi voglia aiutare!

7 Risposte

  • Re: Creare una List ienumerable

    eternityck ha scritto:


    ma ovviamente non funziona dice che la view vuole un model item ienumerable.
    Crea una nuova lista, e aggiungi l'oggetto a quella lista, poi usa la lista come modello.
    
    var list = new List<DipendenteVociAccessorie>();
    list.Add(new DipendenteVociAccessorie());
    return View(list);
    
    Non ho però ben capito a che servirebbe creare quell'oggetto con valori apparentemente predefiniti.
  • Re: Creare una List ienumerable

    Perfetto grazie funziona,
    mi serve solo nel caso in cui il record sia vuoto, però non ho capito una cosa, se volessi (non in questo caso) valorizzare i dati a mio piacere?
    mi spiego meglio così ho creato l'oggetto con valori vuoti ed a me sta benissimo,
    ma se tipo vorrei fare partire di default una view con dei valori che decido io dal controller?
  • Re: Creare una List ienumerable

    eternityck ha scritto:


    mi spiego meglio così ho creato l'oggetto con valori vuoti ed a me sta benissimo,
    ma se tipo vorrei fare partire di default una view con dei valori che decido io dal controller?
    Basta valorizzare le proprietà con i dati che vuoi usare come predefiniti.
  • Re: Creare una List ienumerable

    Ok grazie, ma non è che mi potresti mandare un esempio ???
    grazie
  • Re: Creare una List ienumerable

    eternityck ha scritto:


    Ok grazie, ma non è che mi potresti mandare un esempio ???
    Prendi il codice che hai riportato in precedenza, ossia questo:
    
    var NuovaVoce = new DipendenteVociAccessorie()
                    {
                        IDListino = IdListino,
                        IddipendenteInListino = (Guid)IdDipendente,
                        Idaccessorio = Guid.Parse("00000000-0000-0000-0000-000000000000"),
                        Ordine = 0,
                        CodiceVoce = 0,
                        DescrizioneVoce = "vuota",
                        Valore = 0,
                        Aliquota = false,
                        Competenza = false,
                        ImportoCau00 = 0,
                        ImportoCau10 = 0,
                        ImportoCau20 = 0,
                    };
    
    Al posto dei valori che stai indicando per le varie proprietà (CodiceVoce, DescrizioneVoce, ecc.) sostituiscili con quelli che vuoi tu.

    Non capisco...
  • Re: Creare una List ienumerable

    Ciao

    Penso che quanto indicato da Alka sia già sufficiente.
    Il codice completo sarebbe qualcosa del genere:
    
    
    var elemento = new DipendenteVociAccessorie();
    // qui imposti tutte le proprietà che vuoi di "elemento" coi valori che preferisci
    
    var elenco = new List<DipendenteVociAccessorie>();
    elenco.Add(elemento);
    
    return View(elenco);
    
  • Re: Creare una List ienumerable

    Perfetto grazie sei stato gentilissimo, sono riuscito a capire come funziona!!!
Devi accedere o registrarti per scrivere nel forum
7 risposte