93 messaggi dal 22 marzo 2012
Buongiorno Lista

anche questa volta penso che sia un mio problema ma non riesco a fare una cosa semplicissima.

Ho una classe
using System.ComponentModel.DataAnnotations;

namespace Reti29_MVC.Models
{
    public class Desktop
    {
        [Display(Name = "Nome")]
        public string FirstName { get; set; }
        [Display(Name = "Cognome")]
        public string LastName { get; set; }
    }
}


che utilizzo in una View:
..........

            <div class="container">
                <div class="col-sm-2">
                    <p>@Html.LabelFor(model => model.FirstName, htmlAttributes: new { @class = "control-label col-md-2"  })</p>
                    <p>@Html.LabelFor(model => model.LastName, htmlAttributes: new { @class = "control-label col-md-2" })</p>
                </div>
            </div>

..........


Il mio problema è come faccio a passare il dato letto da un DB ai due campi della classe in modo che vengano visualizzati.

Ho cercato in rete ma non trovo nulla che mi risolva il problema e quindi mi rivolgo a voi per avere degli spunti su come poter fare.

Utilizzo
Visual Studio 2017 - ASP.Net framework 4.7.2 - MVC 5 - Bootstrap 4

Ringraziandovi anticipatamente invio cordiali saluti

Perini Luca
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Luca,


come faccio a passare il dato letto da un DB ai due campi della classe in modo che vengano visualizzati.


Crei un'istanza della classe, gli assegni i valori, e la passi come argomento a View().
Nell'action del tuo controller quindi metti:

var model = new Desktop()
{
  FirstName = "Mario", //Questi sono i valori che hai ottenuto dal db
  LastName = "Rossi"
};
return View(model);


Opzionalmente puoi mettere in cima alla view questa direttiva @model per renderla fortemente tipizzata sul tipo Desktop che l'action del controller le sta passando.
@model Reti29_MVC.Models.Desktop


ciao,
Moreno

Enjoy learning and just keep making
93 messaggi dal 22 marzo 2012
Ciao Moreno

Avevo già inserito in testa il riferimento al Model ma non funzionava.

ho provato la tua soluzione ma passava i dati alla Model (se verificavo le variabili di sistema i dati c'erano) e non al model (in minuscolo).

A questo punto parecchio sconsolato ho trovato un 'vecchio' articolo (del 2010) in rete che parlava della
LabelForModel.

Ho modificato l'esempio, come vedi sotto,

@model Reti29_MVC.Models.Desktop
@Html.LabelForModel(Model.LastName, htmlAttributes: new { @class = "control-label col-md-2" })


e adesso tutto funziona

Grazie ancora



Perini Luca

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.