我正在开发一个asp.net MVC-4项目。我正在使用资源文件(.resx)进行国际化。我是第一次使用它,所以这个问题可能很愚蠢,很抱歉。
我已经创建了一个资源文件进行验证。我在我的项目中也创建了一些自定义验证。我的一个自定义验证是检查数组项长度,最大值和最小值。因此,如果验证失败,我必须显示验证消息:
数组长度必须小于5且大于1
现在我不想硬编码消息中的min(1)和max(5)值。那么有人可以告诉我如何在使用资源文件提供验证消息时实现这一目标吗?
答案 0 :(得分:6)
您可以将消息存储在resx中(格式化字符串)
Array length must to less that {0} and greater than {1}
然后当你使用它时,就像那样
string.Format(resource.GetString("<MyMessage>"), 5, 1);
修改强>
如果你想使用StringLength
属性,你可以这样做
资源字符串可以是:
Property {0} : Array length must be less than {1} and greater than {2}
和属性定义
[StringLength(5, ErrorMessageResourceName = "PostTitleLength"/*or a constant*/, ErrorMessageResourceType = typeof(ValidationResource), MinimumLength = 1)]
如果您的错误消息始终相同,则可以从StringLengthAttribute继承。