MVC RegularExpression模型属性问题

时间:2015-11-09 13:39:51

标签: asp.net-mvc validation data-annotations model-binding stringbuilder

我有一个模型,其属性和ReqularExpression属性看起来像这样......

[RegularExpression(@"^[0-9]{2}\s[a-zA-Z]{3}$", ErrorMessage = "Invalid Facility {NN CCY}")]
public string Facility { get; set; }

然后局部视图只有一个使用上述属性的文本框...

@Html.TextBoxFor(model => model.Facility, new { @class = "form-control",
                                       placeholder = "Should be NN CCY, example: 01 EUR" })
@Html.ValidationMessageFor(model => model.Facility)

黄色死亡屏幕给了我这个错误:

  

[FormatException:输入字符串的格式不正确。]
  System.Text.StringBuilder.AppendFormat(IFormatProvider提供程序,   字符串格式,Object [] args)+14305394
  System.String.Format(IFormatProvider提供程序,String格式,Object []   args)+136
  System.Web.Mvc.RegularExpressionAttributeAdapter.GetClientValidationRules()   +64 System.Linq.d__14 2.MoveNext() +267 System.Web.Mvc.UnobtrusiveValidationAttributesGenerator.GetValidationAttributes(IEnumerable 1   clientRules,IDictionary`2 results)+456
  System.Web.Mvc.HtmlHelper.GetUnobtrusiveValidationAttributes(字符串   name,ModelMetadata metadata)+280

fiels除了占位符之外没有任何其他内容,我收到此错误,突出显示@Html.TextBoxForLine。删除属性可以解决问题,我在这里缺少什么?

1 个答案:

答案 0 :(得分:2)

我通过一些进一步的调查找出了这个问题,this article给了我一个提示StringBuilder.AppendFormat字符串中使用花括号的提示。我的ErrorMessage“无效工具{NN CCY}”包含大括号,我用括号替换它们,现在它可以工作了。

我现在就把它留在这里以防其他人遇到类似令人沮丧的问题。