Когда я отправляю форму с пустой строкой "" для поля Guid
я получаю сообщение об ошибке «Поле MyGuid является обязательным». хотя я не установил атрибут «Обязательный».
//NOT Required
public Guid MyGuid { get; set; }
после привязки модели Guid будет 00000000-0000-0000-0000-000000000000
(потому что это значение по умолчанию), и это правильно. Но в ModelState есть указанная ошибка.
Как я могу избежать этой ошибки?
Дополнительная информация :
Решением было бы переопределить DefaultModelBinder
. И никакие ошибки не будут добавлены в состояние модели
public class MyModelBinder : DefaultModelBinder
{
protected override void SetProperty(ControllerContext controllerContext, ModelBindingContext bindingContext, PropertyDescriptor propertyDescriptor, object value)
{
if (propertyDescriptor.PropertyType == typeof(Guid) && value == null)
{
value = Guid.Empty;
}
base.SetProperty(controllerContext, bindingContext, propertyDescriptor, value);
}
}