Login Login
MORE

WIDGETS

Widgets

Wanted articles
Who is online?
Article tools

CSharp:Attributi delle proprietà e metodi

From Aino Wiki

Jump to: navigation, search

Si possono usare per automatizzare il controllo sintattico, in MVC sono localizzate nel Model.
Per poterli usare è necessario includere nelle using l'uso delle librerie in: System.ComponentModel.DataAnnotations

public class Movie
{
    public int ID { get; set; }
 
    [StringLength(60, MinimumLength = 3)]
    public string Title { get; set; }
 
    [Display(Name = "Release Date")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    public DateTime ReleaseDate { get; set; }
 
    [RegularExpression(@"^[A-Z]+[a-zA-Z''-'\s]*$")]
    [Required]
    [StringLength(30)]
    public string Genre { get; set; }
 
    [Range(1, 100)]
    [DataType(DataType.Currency)]
    public decimal Price { get; set; }
 
    [RegularExpression(@"^[A-Z]+[a-zA-Z''-'\s]*$")]
    [StringLength(5)]
    public string Rating { get; set; }
}

Gli attributi si usano nella validazione grazie al codice razor nella view, notare

@Html.LabelFor(model => model.Title, new { @class = "control-label col-md-2" })
@Html.EditorFor(model => model.Title) @Html.ValidationMessageFor(model => model.Title)

I metodi che effettueranno la validazione lato client sono in apposite librerie di Helper.

Elenco dei più importanti

HttpPost

es:

[HttpPost, ActionName("Delete")]

Questo associato ad un metodo lega l'esecuzione sia ad una richiesta di POST e sia all'azione, del routing, 'Delete'. Utile anche per problemi nella naming degli overload in cui si è obbligati o a cambiare il nome del metodo o ad introdurre un parametro NON richiesto. Quindi se si sceglie di usare un nome diverso da dare al metodo ma lo si vuole legare alla stessa azione di altri si specificherà [... ActionName("nome azione")]


C# | MVC | Principi Teorici


Visual Studio | Attributi e Properties di oggetti

Author