Помощники тега радиокнопки в ASP.NET 5 MVC 6

Я не вижу никаких помощников тегов для переключателей в ASP.NET 5 MVC 6. Каков правильный способ обработки элементов формы, где мне нужно использовать переключатели?

1 ответов


существует TagHelper для всех типов ввода, который включает в себя тип переключателя, а также. Предполагая, что у вас есть такая модель представления

public class CreateUserVm
{
    public string UserName { set; get; }
    public IEnumerable<RoleVm> Roles { set; get; } 
    public int SelectedRole { set; get; }
}
public class RoleVm
{
    public int Id { set; get; }
    public string RoleName { set; get; }        
}

и в вашем действии GET,

public IActionResult Index()
{
    var vm = new CreateUserVm
    {
        Roles = new List<RoleVm>
        {
            new RoleVm {Id = 1, RoleName = "Admin"},
            new RoleVm {Id = 2, RoleName = "Editor"},
            new RoleVm {Id = 3, RoleName = "Reader"}
        }
    };
    return View(vm);
}

в поле зрения, вы можете просто использовать разметку для тега input.

@model YourNamespaceHere.CreateUserVm
<form asp-action="Index" asp-controller="Home">
    <label class="label">User name</label>
    <div class="col-md-10">
        <input type="text" asp-for="UserName" />
    </div>
    <label class="label">Select a Role</label>
    <div class="col-md-10">
    @foreach (var item in Model.Roles)
    {
       <input asp-for="SelectedRole" type="radio" value="@item.Id" /> @item.RoleName
    }
    </div>
    <input type="submit" />
</form>

когда вы публикуете свою форму, идентификатор Rold для выбранной роли будет в SelectedRole свойства

имейте в виду, что приведенный выше код бритва будет генерировать входной элемент с то же самое Id значение атрибута и name значение атрибута для каждого входного сигнала, генерируемого цикла. В приведенном выше примере он будет генерировать 3 входных элемента (тип переключателя) с Id и name значение атрибута установлено значение SelectedRole. Привязка модели будет работать как name значение атрибута совпадает с именем свойства(SelectedRole) в нашей модели представления, но повторяющиеся значения атрибута Id могут дать вам проблемы с кодом на стороне клиента (повторяющиеся идентификаторы в документе неверно)