Creare una List ienumerable

di eternityck il
7 risposte
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

  • 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.
  • 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?
  • 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.
  • Ok grazie, ma non è che mi potresti mandare un esempio ???
    grazie
  • 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...
  • 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);
    
  • Perfetto grazie sei stato gentilissimo, sono riuscito a capire come funziona!!!
Devi accedere o registrarti per scrivere nel forum
7 risposte