Moja klasa modelu ma właściwość bool bez wymaganego atrybutu:EditorFor/CheckBoxFor boolean dodaje dane-Val-wymaganego atrybutu HTML bez wymaganego atrybutu dodawane są do modelowania
public class Test
{
public bool TestBool1 { get; set; }
}
Wtedy moim zdaniem brzytwa używam EditorFor (samo dzieje się z CheckBoxFor również):
<div>
@Html.LabelFor(m => m.TestBool1)
@Html.EditorFor(m => m.TestBool1)
</div>
wynika to w następujący kod HTML:
<div>
<label for="TestBool1">TestBool1</label>
<input class="check-box" data-val="true" data-val-required="The TestBool1 field is required." id="TestBool1" name="TestBool1" type="checkbox" value="true">
<input name="TestBool1" type="hidden" value="false">
</div>
Skąd się bierze atrybut html o wartości danych-val?
Czy istnieje sposób, aby temu zapobiec, używając opcji @Html.CheckBox("TestBool1", Model.TestBool1)
i ustawiając typ na bool?
?
Jestem prawie pewien, że pochodzi on z faktu, że 'bool' musi mieć prawdziwą wartość. Byłbym skłonny postawić zakład, gdyby to był 'bool?' Nie wyrenderowałby tego atrybutu 'data-val-required'. –
@MichaelPerrenoud Zmiana tego na 'bool?' Wymagała użycia nowego EditorTemplate przy użyciu EditorFor (CheckBoxFor w ogóle nie działa), więc tworzy pole wyboru zamiast rozwijanej listy. –