Вопрос

У меня есть деловое требование для обеспечения соблюдения флажества в форме HTML, которая будет отмечена как истинная, прежде чем разрешить представление формы.

Я могу вернуть пользователя в форму, если в этом поле не было проверено с соответствующим сообщением, но хочу одновременно вернуть всю информацию из проверки данных формы.

Я не могу найти никакой информации в другом месте, так что можно ли использовать XVAL для проверки BOOL в TRUE (или FALSE), аналогично использованию [Range(min, max)] DataAnnotation или я должен вручную .AddModelError(..) Содержит эту информацию, чтобы добавить ошибку в ViewModel?

Это было полезно?

Решение

Вы пробовали создать свой собственный ValidationAttribute? Я создал TrueTypeatTribute для такой ситуации.

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; }
    }
}

Другие советы

XVAL обрабатывает требуемое полевое поле, а на флажке, как необходимо проверить. Мне пришлось в последнее время обойти эту ситуацию, так как я пытался представлять не нулевую логическую, где флажок может быть истинным или ложным (только не нулевой). Но в вашем случае это работает отлично. Тем не менее, это дает необходимое сообщение об проверке поля, в котором вы, возможно, ищете сообщение типа «должны принять эти термины».

Может быть легче всего использовать проверку удаленного правила XVAL и проверить из ресурса AJAX.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top