45 votes

Quelle est l'utilité de l'attribut UIHint dans MVC ?

Quelqu'un peut-il m'expliquer quelle est l'utilité de l'attribut UIHint dans MVC. Pourquoi en avons-nous besoin, quand et comment l'utiliser ? Merci

4 votes

Qu'avez-vous lu à ce sujet jusqu'à présent qui était déroutant ? Qu'avez-vous essayé ? Ce n'est pas le bon endroit pour demander des informations qui se trouvent déjà dans la documentation.

4 votes

UIHint est une fonctionnalité très importante et malheureusement, la documentation à ce sujet est pauvre et il n'y a pas beaucoup d'articles ou d'exemples clairs sur Internet.

94voto

tugberk Points 16203

UIHintAttribute Spécifie le modèle ou le contrôle utilisateur que Dynamic Data utilise pour afficher un champ de données.

Voici la description MSDN de UIHintAttribute. Il a d'abord été introduit pour les applications Dynamic Data et ASP.NET MVC l'a également adapté.

Si vous annotez une propriété avec l'attribut UIHint et que vous utilisez la fonction EditorFor o DisplayFor à l'intérieur de vos vues, le cadre ASP.NET MVC recherchera le modèle spécifié par l'intermédiaire de la fonction UIHintAttribute . Les répertoires qu'il recherche sont :

Pour EditorFor :

~/Views/Shared/EditorTemplates

~/Views/Controller_Name/EditorTemplates

Pour DisplayFor :

~/Views/Shared/DisplayTemplates

~/Views/Controller_Name/DisplayTemplates

Si vous êtes sur une zone, cela s'applique également à votre zone comme ci-dessus.

Voici l'exemple d'utilisation :

public class Person { 

    [UIHint("Poo")]
    public string Name { get; set; }
}

Le cadre MVC cherchera une vue partielle nommée poo sous les répertoires spécifiés si vous essayez de sortir la propriété du modèle avec EditorFor o DisplayFor comme ci-dessous :

@model MyApp.Models.Person

<h2>My Person</h2>

@Html.DisplayFor(m => m.Name)

1 votes

Cela ne devrait-il pas être @Html.DisplayFor(m => m.Name) à la fin ?

9 votes

Pourriez-vous fournir un exemple de la façon dont vous créez le modèle d'affichage "Poo" ?

3 votes

Oui, montrez-nous comment créer du caca :J

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X