基本的に、ASP.NET MVCにはいくつかのデフォルトテンプレートがあります(ここで読むことができます)。
必要に応じて、独自のEditorTemplateを追加すると、ASP.NETMVCがデフォルトの代わりにそれを使用します。このためには、ファイル'Boolean。{your-view-engine-extension}'(例:'Boolean.aspx')を〜/ Views / ControllerName / EditorTemplates /または〜/ Views / Shared /EditorTemplates/のいずれかに配置する必要があります。独自の機能でオーバーライドします。
ブール値のデフォルトのエディタは次のとおりです。これは、次のように拡張できます。
<%@ 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" }) %>
<% } %>