Как правило, ASP.NET MVC имеет несколько шаблонов по умолчанию (вы можете прочитать их здесь ).
Если хотите, вы можете добавить свой собственный EditorTemplate, и ASP.NET MVC будет использоватьэто вместо дефолта.Для этого вы должны поместить файл 'Boolean. {Your-view-engine-extension}' (например: 'Boolean.aspx') в ~ / Views / ControllerName / EditorTemplates / или ~ / Views / Shared / EditorTemplates / и переопределите его своими собственными функциями.
Вот редактор по умолчанию для Boolean, который может быть улучшен вами:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<script runat="server">
private List<SelectListItem> TriStateValues {
get {
return new List<SelectListItem> {
new SelectListItem { Text = "Not Set", Value = String.Empty, Selected = !Value.HasValue },
new SelectListItem { Text = "True", Value = "true", Selected = Value.HasValue && Value.Value },
new SelectListItem { Text = "False", Value = "false", Selected = Value.HasValue && !Value.Value },
};
}
}
private bool? Value {
get {
if (ViewData.Model == null) {
return null;
}
return Convert.ToBoolean(ViewData.Model, System.Globalization.CultureInfo.InvariantCulture);
}
}
</script>
<% if (ViewData.ModelMetadata.IsNullableValueType) { %>
<%= Html.DropDownList("", TriStateValues, new { @class = "list-box tri-state" }) %>
<% } else { %>
<%= Html.CheckBox("", Value ?? false, new { @class = "check-box" }) %>
<% } %>