MVC 4: Cet exemple montre en détail l'implémentation de gabarits booléens pour une liste déroulante qui contient des valeurs Oui, Non et Non défini et gère également des valeurs booléennes nulles. Inspiré de Darin Dimitrov et Jorge - Merci.
Modèle Student.cs
[Display(Name = "Present:")]
[UIHint("YesNo")]
public bool? IsPresent { get; set; }
DisplayTemplates: YesNo.cshtml
@model Nullable<bool>
@if (Model.HasValue)
{
if (Model.Value)
{ <text>Yes</text> }
else
{ <text>No</text> }
}
else
{ <text>Not Set</text> }
EditorTemplates: YesNo.cshtml
@model Nullable<bool>
@{
var listItems = new[]
{
new SelectListItem { Value = "null", Text = "Not Set" },
new SelectListItem { Value = "true", Text = "Yes" },
new SelectListItem { Value = "false", Text = "No" }
};
}
@if (ViewData.ModelMetadata.IsNullableValueType)
{
@Html.DropDownList("", new SelectList(listItems, "Value", "Text", Model))
}
else
{
@Html.CheckBox("", Model.Value)
}
Vue:
<div class="editor-label">
@Html.LabelFor(model => model.IsPresent)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.IsPresent)
@Html.ValidationMessageFor(model => model.IsPresent)
</div>