3 Stimmen

Asp.net Datenvalidierung Feldlänge

Ich habe derzeit die folgende Datenannotation in einem Feld

[StringLength(1000, MinimumLength = 6, ErrorMessage = "Feld muss mindestens 6 Zeichen lang sein")]
public string myField {get;set;}

Kann ich die Datenannotation ändern, sodass sie nur funktioniert, wenn der Benutzer etwas in das Feld eingibt? Mit anderen Worten, es ist in Ordnung, das Feld leer zu lassen, aber wenn der Benutzer einen Wert in das Feld eingibt, sollte er zwischen 6 und 1000 Zeichen lang sein.

19voto

Darin Dimitrov Punkte 990883

Das ist bereits der Fall bei dem StringLength Attribut. Wenn Sie das Feld leer lassen, wird das Modell gültig sein. Haben Sie das etwa nicht ausprobiert?

Modell:

public class MyViewModel
{
    [StringLength(1000, MinimumLength = 6, ErrorMessage = "Feld muss mindestens 6 Zeichen lang sein")]
    public string MyField { get; set; }
}

Controller:

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View(new MyViewModel());
    }

    [HttpPost]
    public ActionResult Index(MyViewModel model)
    {
        return View(model);
    }
}

Ansicht:

@model MyViewModel

@using (Html.BeginForm())
{ 
    @Html.EditorFor(x => x.MyField)
    @Html.ValidationMessageFor(x => x.MyField)
    OK
}

Sie können das Feld leer lassen und werden keine Validierungsfehler erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X