我有一个模型,其属性和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__142.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
。删除属性可以解决问题,我在这里缺少什么?
答案 0 :(得分:2)
我通过一些进一步的调查找出了这个问题,this article给了我一个提示StringBuilder.AppendFormat
字符串中使用花括号的提示。我的ErrorMessage
,“无效工具{NN CCY}”包含大括号,我用括号替换它们,现在它可以工作了。
我现在就把它留在这里以防其他人遇到类似令人沮丧的问题。