Το ModelMetaData είναι μια σημαντική έννοια στο MVC, συμπεριλαμβανομένων, ενδεικτικά, του τύπου του μοντέλου, των χαρακτηριστικών που περιέχει το μοντέλο, των τύπων χαρακτηριστικών που υπάρχουν και των χαρακτηριστικών που υπάρχουν στα χαρακτηριστικά.
ASP.NET Το MVC3.0 παρέχει τα προεπιλεγμένα μεταδεδομένα μοντέλου DataAnnotationsModelMetadata που κληρονομεί από το ModelMetadata (επιπλέον, το σύστημα παρέχει τον προεπιλεγμένο πάροχο μεταδεδομένων μοντέλου DataAnnotationsModelMetadataProvider)
δημόσια τάξη DataAnnotationsModelMetadata : ModelMetadata
Ο κατασκευαστής του έχει ως εξής
public DataAnnotationsModelMetadata(DataAnnotationsModelMetadataProvider provider, Type containerType, Func modelAccessor, Type modelType, string propertyName; DisplayColumnAttribute displayColumnAttribute);
Η κλάση DataAnnotationsModelMetadata έχει πολλές ιδιότητες που χρησιμοποιούνται συχνά
Εμφανιζόμενο όνομα DisplayName, συμβολοσειρά μορφής DisplayFormatString
Το TemplateHint λαμβάνει μια τιμή για να επιλέξει ποιο πρότυπο θα χρησιμοποιηθεί
Για το DisplayName, η μέθοδος LabelFor<TModel, TValue> χρησιμοποιεί αυτήν την ιδιότητα για τη δημιουργία του κειμένου της ετικέτας. ΣημαίνειΜόλις οριστεί η ιδιότητα DispalyName στο μοντέλο μας, χρησιμοποιήστε τη μέθοδο html.editForModel() στην προβολήΘα εμφανίσει αυτόματα την ετικέτα ετικέτας " <label for="username" > όνομα </ για αυτό το χαρακτηριστικό</label> του μοντέλου.
[display( name="name",order=2)] //order αλλάζει τη σειρά της σελίδας HTML όνομα χρήστη δημόσιας συμβολοσειράς { get; σειρά; }
Πηγαίος κώδικας HTML:
Η ιδιότητα Display που χρησιμοποιείται στο χαρακτηριστικό ονόματος χρήστη είναι η κλάση System.ComponentModel.DataAnnotations.DisplayAttribute, η οποία παρέχει μια γενική δυνατότητα που σας επιτρέπει να καθορίσετε συμβολοσειρές με δυνατότητα τοπικής προσαρμογής για τον τύπο και το μέλος της κλάσης διαίρεσης οντότητας
Υπάρχουν επίσης λειτουργίες από το System.Web.MVC και το System.ComponentModel.DataAnnotations, των οποίων τα ονόματα είναι όλες χαρακτηριστικών παρόμοιες με το XXXXAttribute, οι οποίες έχουν όλα συγκεκριμένα πεδία χρήσης, ορισμένα περιορίζουν τις ιδιότητες του μοντέλου, άλλα περιορίζουν το Contrller, άλλα περιορίζουν τις ενέργειες κ.λπ.
Ακολουθεί μια λίστα με ενσωματωμένες και κοινώς χρησιμοποιούμενες χαρακτηριστικών σε αυτούς τους δύο χώρους ονομάτων
1) Χώρος System.Web.MVC
AcceptVerbsAttribute,ActionFilterAttribute,ActionNameAttribute,AsyncTimeoutAttribute,AuthorizeAttribute,BindAttribute,
HiddenInputAttribute
Το ActionFilterAttribute αντιπροσωπεύει τη βασική κλάση όλων των ιδιοτήτων φίλτρου δράσης
HttpDeleteAttribute, η οποία αντιπροσωπεύει μια ιδιότητα που χρησιμοποιείται για τον περιορισμό της μεθόδου λειτουργίας, έτσι ώστε η μέθοδος να χειρίζεται μόνο αιτήσεις HTTP DELETE
HttpGetAttribute, ένα χαρακτηριστικό HttpPostAttribute που περιορίζει τη μέθοδο λειτουργίας στην επεξεργασία μόνο αιτημάτων PUT
Το HttpPutAttribute αντιπροσωπεύει μια ιδιότητα που χρησιμοποιείται για τον περιορισμό της μεθόδου λειτουργίας, έτσι ώστε η μέθοδος να χειρίζεται μόνο αιτήματα HTTP PUT.
Παράδειγμα: Το ActionNameAttribute καθορίζει το πραγματικό actionname της ενέργειας και η χρήση είναι η εξής
[ΌνομαΔράσης()]
δημόσιο ActionResult Index()
Παράδειγμα: Η κλάση HiddenInputAttribute, η οποία αντιπροσωπεύει μια ιδιότητα που υποδεικνύει εάν μια τιμή ιδιότητας ή μια τιμή πεδίου πρέπει να αποδοθεί ως κρυφό στοιχείο εισόδου |