我目前在字段上有以下数据注释
[StringLength(1000, MinimumLength = 6, ErrorMessage = "field must be atleast 6 characters")]
public string myField {get;set;}
我可以更改数据注释,使其仅在用户在字段中键入内容时才有效吗?换句话说,可以将该字段留空,但如果用户在字段中键入值,则其长度应介于6-1000个字符之间。
答案 0 :(得分:15)
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>
}
您可以将该字段留空,并且不会出现验证错误。