4 messaggi dal 17 agosto 2012
Bind e ScaffoldColumn in dataannotations, mi spiegate perchè si usano e come funzionano?
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
per scaffolding si intende il meccanismo di autogenerazione delle interface (form di modifica nel qual caso), come nei progetti Dynamic Data oppure in ASP.NET MVC, con l'helper method Html.EditorForModel.
Con l'attributo [ScaffoldColumn(false)] puoi decorare quelle proprietà che non vuoi che appaiano nei form autogenerati, magari perché si tratta di proprietà calcolate oppure che l'utente non deve modificare (es. timestamp o campi che contengono informazioni riservate).

L'attributo Bind, che non è propriamente una data annotation, lo puoi usare per decorare i parametri delle tue action MVC per dare istruzioni al model binder. Lo puoi usare per due scopi principali:
  • Per escludere esplicitamente una proprietà dal binding. Infatti, con MVC, anche se avessi usato ScaffoldColumn per nascondere una proprietà, un utente esperto e smanettone potrebbe comunque modificare il form lato client per reintrodurla. Con [Bind(Exclude="NomeProprietà")] ti assicuri che il model binder non valorizzerà quella proprietà, neanche se un valore dovesse esistere nel form. Il problema è descritto qui.
  • Il secondo uso che puoi fare di Bind è quello di indicare un eventuale prefisso usato dai nomi dei campi HMTL che si trovano nella tua view. Magari nella view erano già presenti delle caselle di testo con nomi che collidono con quelli delle proprietà del tuo model, allora grazie all'attributo Bind puoi indicare quale prefisso hai usato per disambiguarli. Hai un esempio qui.


ciao,
Moreno
Modificato da BrightSoul il 07 dicembre 2013 10.27 -

Enjoy learning and just keep making

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.