0

У меня есть модель, со свойством и атрибут ReqularExpression, который выглядит, как это ...MVC RegularExpression модель Атрибут Выпуск

[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: Input string was not in a correct format.]
System.Text.StringBuilder.AppendFormat(IFormatProvider provider, String format, Object[] args) +14305394
System.String.Format(IFormatProvider provider, String format, 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(String name, ModelMetadata metadata) +280

В филях нет ничего, кроме заполнителя, и я получаю эту ошибку, которая выделяет @Html.TextBoxForLine. Удаление атрибута решает проблему, что мне здесь не хватает?

ответ

2

Я выяснил проблему в результате какого-либо дальнейшего расследования, и this article дал мне подсказку StringBuilder.AppendFormat, в которой фигурные фигурные скобки используются в строке. Мой ErrorMessage, «Недействительный объект {NN CCY}» содержит фигурные скобки, и я заменил их скобкой, и теперь он работает.

Я оставлю это здесь на данный момент, если другие получат подобную неприятную проблему.

+0

фигурные скобки можно использовать, чтобы добавить значение DisplayName в сообщении об ошибке см http://stackoverflow.com/questions/3557953/how-to-put-displayname-on-errormessage-format –

+0

@ArjunVachhani, спасибо, я буду помните об этом. Ошибка, которую я получал, заключалась в том, что на выходе использовались фигурные скобки, такие как _UI Formatting_, что не требовалось. – christiandev