В полях Моя модель принимаются цифры и пустая строка:
[DisplayName("Height")]
[RegularExpression (@"^\d*$", ErrorMessage="Height must be a number or left out blank")]
public string Height { get; set; }
[DisplayName("Width")]
[RegularExpression(@"^\d*$", ErrorMessage = "Height must be a number or left out blank")]
public string Width { get; set; }
Мой вид:
<%= Html.LabelFor(x => x.Width) %>:
<%= Html.TextBoxFor(x => x.Width) %>
<%= Html.LabelFor(x => x.Height) %>:
<%= Html.TextBoxFor(x => x.Height) %>
В действии контроллера:
[HttpPost]
public ActionResult Edit(MyModeltype model)
{
model.Width = String.IsNullOrEmpty(model.Width) ? "" : model.Width; //NEEDED?
model.Height = String.IsNullOrEmpty(model.Height) ? "" : model.Height; //NEEDED?
if (ModelState.IsValid)
SaveSettings(model);
return View("SomeView");
}
Когда я предоставляю пустоетекстовые поля, Model.Width и .Height передаются как пустые значения, а ModelState.IsValid имеет значение false.Мне просто нужно пропустить пустую строку.Опуская атрибут regex, та же проблема, так что это не регулярное выражение.Спасибо!