Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.NET MVC Data Annotations Validation ErrorMessageResourceType

When using Data Annotations Validation, everything works fine until I try to use resources.

Here's the error I get: The name 'ErrorMessageResourceType' does not exist in the current context.

And the code I used:

using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using Microsoft.Web.Mvc;

namespace Project.Models  
{  
    [MetadataType(typeof(LanguageMetaData))]
    public partial class Language
    {
    }

    public class LanguageMetaData
    {
        [Required(ErrorMessageResourceType(typeof(Resources.Errors)), 
                  ErrorMessageResourceName = "IdRequired")]
        public object Id { get; set; }

        [Required(ErrorMessageResourceType(typeof(Resources.Errors)), 
                  ErrorMessageResourceName = "NameRequired")]
        public object Name { get; set; }

        public object Flag { get; set; }
        public object IsDefault { get; set; }
    }
}

I can't find anything wrong with this. Can someone more experienced help me with what's wrong?

Thank you!

like image 382
Fabio Milheiro Avatar asked Sep 10 '09 14:09

Fabio Milheiro


2 Answers

It has to be

ErrorMessageResourceType = typeof(Resources.Errors)

instead of

ErrorMessageResourceType(typeof(Resources.Errors))

This was a small big damn stupid mistake :D

Hope this helps anyone who had the same problem!

like image 101
Fabio Milheiro Avatar answered Oct 04 '22 02:10

Fabio Milheiro


You need to use both ErrorMessageResourceType and ErrorMessageResourceName.

[EmailAddress(ErrorMessageResourceType = typeof(Resource),ErrorMessageResourceName = "Message_ValidEmail")]
like image 37
Shivam Dhagat Avatar answered Oct 04 '22 02:10

Shivam Dhagat