Frage

Ich habe die geschäftliche Anforderung, ein Kontrollkästchen in einem HTML -Formular durchzusetzen, das als wahr markiert werden soll, bevor das Formular eingereicht wird.

Ich kann den Benutzer in das Formular zurückgeben, wenn dieses Feld nicht mit einer entsprechenden Nachricht überprüft wurde, aber alle Informationen gleichzeitig aus einer XVAL -Validierung der Formulardaten zurückgeben möchte.

Ich kann an anderer Stelle keine Informationen finden. Ist es also möglich, XVAL zu verwenden, um einen Bool auf wahr (oder Falsch) zu validieren, ähnlich wie bei der Verwendung der Verwendung [Range(min, max)] DataAnnotation oder muss ich manuell .AddModelError(..) Enthält diese Informationen, um den Fehler zum ViewModel hinzuzufügen?

War es hilfreich?

Lösung

Haben Sie versucht, Ihre eigene ValidationAttribute zu erstellen? Ich habe ein TruetypeAttribute für diese Art von Situation erstellt.

using System;
using System.ComponentModel.DataAnnotations;

namespace KahunaCentralMVC.Data.ModelValidation.CustomValidationAttributes
{
    public class TrueTypeAttribute : ValidationAttribute
    {
        public override bool IsValid(object value)
        {
            if (value == null) return false;
            bool newVal;
            try
            {
                newVal = Convert.ToBoolean(value);
                if (newVal)
                    return true;
                else
                    return false;
            }
            catch (InvalidCastException)
            {
                return false;
            }
        }
    }
}

[MetadataType(typeof(FooMetadata))]
public partial class Foo
{
    public class FooMetadata
    {
        [Required(ErrorMessage = " [Required] ")]
        [TrueTypeAttribute(ErrorMessage = " [Required] ")]
        public bool TruVal { get; set; }
    }
}

Andere Tipps

XVAL behandelt eine erforderliche Felddatenanotation in einem Kontrollkästchen, wie es überprüft werden muss. Ich musste kürzlich in dieser Situation arbeiten, als ich versuchte, einen nicht nullbaren Booleschen zu repräsentieren, in dem das Kontrollkästchen wahr oder falsch sein könnte (nur nicht null). Aber in Ihrem Fall funktioniert dies perfekt. Es gibt jedoch eine erforderliche Meldung zum Feldvalidierungsnachricht, in der Sie möglicherweise nach einer "Muss diese Begriffe akzeptieren" -Typnachrichten suchen.

Es ist möglicherweise am einfachsten, die XVAL -Remote -Regelvalidierung zu verwenden und aus einer AJAX -Ressource zu validieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top