asp.net数据注释字段长度

时间:2012-09-26 14:55:00

标签: asp.net-mvc-3 data-annotations

我目前在字段上有以下数据注释

[StringLength(1000, MinimumLength = 6, ErrorMessage = "field must be atleast 6 characters")]
public string myField {get;set;}

我可以更改数据注释,使其仅在用户在字段中键入内容时才有效吗?换句话说,可以将该字段留空,但如果用户在字段中键入值,则其长度应介于6-1000个字符之间。

1 个答案:

答案 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>
}

您可以将该字段留空,并且不会出现验证错误。