0

我正在开发一个 asp.net MVC-4 项目。我正在使用资源文件 (.resx)进行国际化。我是第一次使用它,所以这个问题可能很愚蠢,很抱歉。

我已经创建了一个用于验证的资源文件。我也在我的项目中创建了一些自定义验证。我的自定义验证之一是再次检查数组项长度的最大值和最小值。因此,如果验证失败,我必须显示验证消息,例如:

数组长度必须小于 5 且大于 1

现在我不想在消息中硬编码 min (1) 和 max (5) 值。那么任何人都可以告诉我如何在使用资源文件提供验证消息时实现这一点?

4

1 回答 1

7

好吧,您可以像这样将消息存储在 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 继承。

请参阅修改默认 ErrorMessage 以进行 StringLength 验证

于 2013-08-28T08:21:31.167 回答