Je travaille dans MVC4 et je veux définir un modèle à l'aide d'un attribut Pour le moment, j'ai le code suivant dans le modèle: P> majuscule code>. L'idée serait que la présence de l'attribut majuscule entraînerait la convertie de la valeur du modèle en majuscule lorsqu'elle est arrivée sur le serveur.
[Required]
[Display(Name="Account Code")]
[StringValidation(RegExValidation.AccountCode)]
[Uppercase]
public string Account { get; set; }
4 Réponses :
Vous avez raison, Je n'ai pas testé cela. Laissez-moi savoir si cela fonctionne ou non. P> p> validationAttribute code> n'est pas le bon ajustement. On dirait que cela aura lieu à la phase de liaison du modèle serait une meilleure idée. Voir Cet article pour une explication détaillée de la façon de personnaliser ce comportement. < p> Sur la base des informations fournies là-bas, je pense que vous devriez pouvoir créer un attribut basé sur
Customotomadelbinderattribute code> comme ceci: p>
Merci Daniel, malheureusement, le défautModelbinder ne peut pas être affecté à des propriétés. AttributeUSAGeTribute (AttributeTaregets.class | attributetarg ets.struct | Attribute Targets.enum | Attribut TetaRgets.interface | AttributetaRgets.par Amereter Code>
Ensuite, nous devrons aller un niveau supérieur. Nous devons changer le classeur de modèle pour les classes contenant ces chaînes, modifier la barreaucaseTribute en un simple attribut de marquage et indiquez au classeur de modèle de rechercher cet attribut et de traiter ces chaînes différemment.
J'ai réussi à faire fonctionner cela, à un point, voici ma solution pour que d'autres d'apprécier.
Une fois à noter que la solution complète n'a pas pu être atteinte parce que je ne pouvais pas obtenir le Voici le code pour le i a créé un nouveau et enregistré qui dans mon Le code jusqu'à présent entraînera une entrée de chaîne en MVC à être convertie en majuscule s'il a Ensuite, pour réaliser mon désir de faire des formulaires HTML en majuscule aussi, j'ai implémenté un nouveau avec le CSS comme; p> espère que cet article aide quelques autres là-bas. p> p> Modelmetadata code> à l'intérieur du
stringvalidation.isvalid () code> attribut. Le problème particulier que j'avais ici était que je pouvais obtenir les métadonnées, mais je n'ai pas pu obtenir le nom de propriété code> à partir de celui-ci, seul le
displayName code>. Il y avait plusieurs options là-bas, mais le fait que certaines de mes propriétés ont le même
displayName code> signifie que je ne pouvais pas être sûr que le
proprtyname code> était celui que j'étais réellement Validation. P>
validationAttribute code>: p>
imodelbinder code > Mise en œuvre: p>
global.asax code> fichier: p>
stringvalidationattribute code> attaché à celui-ci sur le modèle et où l'indicateur majuscule a été défini. P>
EditTorteTemplate code> nommé
string.cshtml code>. Dans cette vue, j'ai ajouté: p>
Bonjour, cela s'applique-t-il à MVC 4? parce que je reçois l'erreur suivante. 'UpperCasevalidationAttribute' NE MONTRAIMENT PAS MEMBRE MEMBRE D'INTERFACE 'SYSTÈME.WEB.MVC.ICLIENTVALIDABLE.GETCLIGEVALIDATIONSRULES (SYSTEM.WEB.MVC.MODEL METADATA, SYSTÈME.WEB.MVC.CONTROLLERCONTEXT)' Pourriez-vous s'il vous plaît aider? Merci!!
Oui cela fonctionne dans mvc4. Vous devez ajouter une substitution pour Public Ienumerable
Cela stocke-t-il du texte dans la base de données de la forme de capital? @Pseudo
En ce qui concerne le contrôleur le sait, le texte est toujours présenté en majuscule. En supposant que vous passez directement sur la base de données, alors oui, il frapperait la DB en majuscule.
J'utilise généralement un processus de deux parties lors de la formulation de données de texte à former en majuscule. 1. À la vue et 2. Au contrôleur p> sur la couche de vue afin que l'utilisateur connaisse des données soit utilisée dans la forme majuscule. Cela peut être en panne via les HTMLATtributs utilisés dans l'éditeur pour l'aide HTML. P>
public ActionResult verify(int? id)
{
var userData = db.user.Where (i=> i.userID == id).Single();
userData.Access_Code = userData.Access_Code.ToUpper();
...
}
Pour l'API Web Objectif Il est préférable de convertir le JSON entrant en majuscules ou en minuscule.
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); //.......... others JsonMediaTypeFormatter jsonFormatter = GlobalConfiguration.Configuration.Formatters.JsonFormatter; JsonSerializerSettings jSettings = new Newtonsoft.Json.JsonSerializerSettings(); jSettings.Converters.Add(new UpperCaseStringConverter()); jsonFormatter.SerializerSettings = jSettings; }