¿Cómo manejar Booleans / CheckBoxes en ASP.NET MVC 2 con DataAnnotations?

Tengo un modelo de vista como este:

public class SignUpViewModel
{
    [Required(ErrorMessage = "Bitte lesen und akzeptieren Sie die AGB.")]
    [DisplayName("Ich habe die AGB gelesen und akzeptiere diese.")]
    public bool AgreesWithTerms { get; set; }
}

El código de marcado de vista:

<%= Html.CheckBoxFor(m => m.AgreesWithTerms) %>
<%= Html.LabelFor(m => m.AgreesWithTerms)%>

El resultado:

No se ejecuta validación. Eso está bien hasta ahora porque bool es un tipo de valor y nunca es nulo. Pero incluso si hago que AgreesWithTerms sea anulable, no funcionará porque el compilador grita

"Las plantillas solo se pueden usar con acceso de campo, acceso a propiedades, índice de matriz de dimensión única o expresiones de indexador personalizado de parámetro único".

Entonces, ¿cuál es la forma correcta de manejar esto?

Respuestas a la pregunta(12)

Su respuesta a la pregunta