Проверить лом
-
22-09-2019 - |
Вопрос
У меня есть деловое требование для обеспечения соблюдения флажества в форме 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.