Hi,<div><br></div><div>I was testing my <a href="http://ASP.NET" target="_blank">ASP.NET</a> MVC 3 app on mono 2.10.5 and I have found that mono&#39;s StringLengthAttribute class (System.ComponentModel.DataAnnotations) have an inconsistency for localized error messages. In MS .NET the formatting function (FormatErrorMessage) supports 3 indexed placeholders (field name, maximum length, minimum length) for error message string and mono only supports the first two.</div>










<div><br></div><div><div><div>Steps to reproduce the problem:</div><div>1. Create a class using StringLength validation.</div><div>2. Use &quot;{2}&quot; inside the ErrorMessage string.</div><div>3. Test the validation.</div>


<div><br></div><div>Code snippet:</div><div><div>public class TestModel</div><div>{</div><div>    public TestModel()</div><div>    {</div><div>    }</div><div><br></div><div>    [StringLength(10, MinimumLength = 3, ErrorMessage = &quot;{0} must be between {2} and {1} characters.&quot;)]</div>


<div>    public string TestProperty { get; set; }</div><div>}</div></div><div><br></div><div>Actual Results:</div><div><div>System.FormatException: Index (zero based) must be greater than or equal to zero and less than the size of the argument list.</div>

</div><div><br></div>
<div>Expected Results:</div><div>Correct formatted message: &quot;TestProperty must be between 3 and 10 characters.&quot;</div></div><div><br></div><div>I have attach a patch that fix the problem.</div><div><br></div>-- <br>

<span><font face="&#39;courier new&#39;, monospace">Eddy Zavaleta</font></span><br>
<br>
</div>