Asp.net core 如何为ASP.NET Core制作精美的复选框模板?

Asp.net core 如何为ASP.NET Core制作精美的复选框模板?,asp.net-core,mvc-editor-templates,tag-helpers,asp.net-core-tag-helpers,Asp.net Core,Mvc Editor Templates,Tag Helpers,Asp.net Core Tag Helpers,我的模型中有很多booleans,我们使用Bootstrap,所以对于每个boolean属性,我都在复制/粘贴重构: <div class="form-group"> <div class="custom-control custom-checkbox "> <input asp-for="IsFoo"/> <label asp-for="IsFoo"></label> </div&

我的模型中有很多
boolean
s,我们使用Bootstrap,所以对于每个boolean属性,我都在复制/粘贴重构:

<div class="form-group">
    <div class="custom-control custom-checkbox ">
        <input asp-for="IsFoo"/>
        <label asp-for="IsFoo"></label>
    </div>
</div>
。。。用
@Html.EditorFor(m=>m.IsFoo)
调用它,但我得到的只是默认模板中的一个普通
输入
元素

  • 我在这里做错了什么?将模板命名为“boolean.cshtml”
  • ViewData.TemplateInfo.FormattedValue是否是从属性nope获取
    显示(Name=“xxx”)
    属性的正确值<代码>ViewData.ModelMetadata.DisplayName
  • 在ASP.NET Core中是否有一些新的和改进的版本而不是编辑器模板,我应该使用它们(比如标记帮助器?)而不是“旧”的方式,如果是,我该怎么做
  • 使用
    标记帮助器:

    <partial name="MyCheckbox" for="IsFoo" />
    
    
    
    它也适用于绑定属性:

    class MyModel
    {
        public List<MyCheckboxModel> MyCheckboxList { get; set; }
    }
    
    class MyCheckboxModel
    {
        public Boolean IsChecked { get; set; }
    }
    
    @for( Int32 i = 0; i < this.Model.MyCheckboxList.Count; i++ )
    {
        <partial name="MyCheckbox" for="MyCheckboxList[i]"
    }
    
    classmymodel
    {
    公共列表MyCheckboxList{get;set;}
    }
    类MyCheckboxModel
    {
    公共布尔值已检查{get;set;}
    }
    @对于(Int32 i=0;i部分模板是否必须存在于特定文件夹中?@ScottBaker它可以位于
    共享的
    文件夹中的任何位置,也可以位于相应的
    视图/[ControllerName]
    文件夹中
    class MyModel
    {
        public List<MyCheckboxModel> MyCheckboxList { get; set; }
    }
    
    class MyCheckboxModel
    {
        public Boolean IsChecked { get; set; }
    }
    
    @for( Int32 i = 0; i < this.Model.MyCheckboxList.Count; i++ )
    {
        <partial name="MyCheckbox" for="MyCheckboxList[i]"
    }
    
    @model MyCheckboxModel
    <div class="form-group">
        <div class="custom-control custom-checkbox">
            <input asp-for="@Model"/>
            <label asp-for="@Model"></label>
        </div>
    </div>