StringLength
属性の場合はすでにそうです。フィールドを空のままにすると、モデルは有効になります。これも試してみませんでしたか?
モデル:
public class MyViewModel
{
[StringLength(1000, MinimumLength = 6, ErrorMessage = "field must be atleast 6 characters")]
public string MyField { get; set; }
}
コントローラ:
public class HomeController : Controller
{
public ActionResult Index()
{
return View(new MyViewModel());
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
return View(model);
}
}
意見:
@model MyViewModel
@using (Html.BeginForm())
{
@Html.EditorFor(x => x.MyField)
@Html.ValidationMessageFor(x => x.MyField)
<button type="submit">OK</button>
}
フィールドを空のままにしておくと、検証エラーは発生しません。