使用Data Annotations Valition时,一切正常,直到我尝试使用资源。
这是我得到的错误: “ErrorMessageResourceType”这个名称在当前上下文中不存在。
我使用的代码:
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; }
}
}
我找不到任何错误。更有经验的人可以帮我解决错误吗?
谢谢!
答案 0 :(得分:16)
必须是“ErrorMessageResourceType = typeof(Resources.Errors)” 而不是“ErrorMessageResourceType(typeof(Resources.Errors))”
这是一个小大的愚蠢的错误:D
希望这有助于任何遇到同样问题的人!
答案 1 :(得分:0)
您需要同时使用ErrorMessageResourceType
和ErrorMessageResourceName
。
[EmailAddress(ErrorMessageResourceType = typeof(Resource),ErrorMessageResourceName = "Message_ValidEmail")]
答案 2 :(得分:0)
使用nameof代替字符串是 ErrorMessageResourceName 的更好选择。
这是一个示例:
[StringLength(maximumLength: 60, MinimumLength = 2, ErrorMessageResourceType = typeof(Resources.Register), ErrorMessageResourceName = nameof(Resources.Register.ChooseRole))]