Bonne journée!Modifier la valeur par défaut "Le champ {0} est requis" (solution ultime?)
J'ai la classe ViewModel suivante, je l'utilise pour le formulaire de connexion:
using System.ComponentModel.DataAnnotations;
...
public class UserLogin : IDataErrorInfo
{
[Required]
[DisplayName("Login")]
public string Login { get; set; }
[Required]
[DisplayName("Password")]
public string Password { get; set; }
[DisplayName("Remember Me")]
public bool RememberMe { get; set; }
#region IDataErrorInfo Members
// This will be a Model-level error
public string Error
{
get
{
if (!WebUser.CanLogin(Login, Password))
{
return Resources.ValidationErrors.InvalidLoginPassword;
}
else
{
return String.Empty;
}
}
}
// All is handled by DataAnnotation attributes, just a stub for interface
public string this[string columnName]
{
get
{
return string.Empty;
}
}
#endregion
}
Et ceci Global.asax
:
DefaultModelBinder.ResourceClassKey = "BinderMessages";
ValidationExtensions.ResourceClassKey = "BinderMessages";
Le fichier de ressources BinderMessages.resx
est placé à l'intérieur App_GlobalResources il a deux touches InvalidPropertyValue
(qui fonctionne) et PropertyValueRequired
qui ne fonctionne pas et me donne un message par défaut.
Question: Est-il possible de modifier ce message, ou est-il lié à DataAnnotations?
J'ai trouvé beaucoup de messages à ce sujet, mais sans solution. Pour l'instant je viens REPLI à ceci:
[Required(ErrorMessageResourceType = typeof(Resources.ValidationErrors), ErrorMessageResourceName = "Required")]
Le problème reste cependant, est ce que si vous avez laissé Login et Mot de passe vide? Le programme abandonne avec l'objet non défini. – Fandango68
Pourquoi le pensez-vous? Le classeur modèle va instancier une instance d'objet 'UserLogin' de toute façon. – artvolk
Presque 5 ans et semble toujours pas applicable. Il n'y a toujours que 4 clés qui peuvent être utilisées dans le fichier de ressources défini dans 'global.asax' – mcy