J'utilise DataAnnotationsExtensions de http://dataannotationsextensions.org/
avec un exemple tiré d'ici http://weblogs.asp.net/srkirkland/archive/2011/02/23/introducing-data-annotations-extensions.aspx
Code du contrôleur
public ActionResult Create(Dog dog, HttpPostedFileBase Picture)
{
Regex rgx = new Regex(@"^.*\.(jpg|gif|jpeg|png)$");
Match m = rgx.Match(Picture.FileName);
if (rgx.IsMatch(Picture.FileName))
{
if (ModelState.IsValid)
{
Code du modèle
[FileExtensions("png|jpg|jpeg|gif", ErrorMessage = "Only jpg jpeg gif or png files allowed")]
public string Picture { get; set; }
et le code du rasoir
@Html.TextBoxFor(model => model.Picture, new { type = "file" })
@Html.ValidationMessageFor(model => model.Picture)
Tout ce que je fais échoue à chaque fois à
if (ModelState.IsValid)
Si je supprime l'annotation FileExtensions, tout fonctionne bien, mais je n'ai plus la possibilité de bloquer les types de fichiers que je ne veux pas.
Je suis allé jusqu'à vérifier le code des extensions d'annotations de données situé ici https://github.com/srkirkland/DataAnnotationsExtensions/blob/master/DataAnnotationsExtensions/FileExtensionsAttribute.cs
et je n'arrive toujours pas à trouver l'origine du problème.