首页 > 解决方案 > 如何修复 ASP.NET MVC 用户界面应用错误的输入。ASP.NET 标识

问题描述

如何修复此 UI,我需要查看复选框而不是文本框。我已经为复选框定义了输入,但仍然显示文本框。我正在使用 ASP.NET 身份 - MVC 5

这是我正在运行的应用程序,文本框应该是复选框。 在此处输入图像描述

看法:

@using Fst.ReactDemoApplication.Web.Models
@model List<ManageUserRolesViewModel>
@{
     ViewData["Title"] = "Manage";
     Layout = "~/Views/Shared/_Layout.cshtml";
}
<form method="post">
    <div class="card">
        <div class="card-header">
            <h2>Manage User Roles</h2>
            Add/Remove Roles for User / @ViewBag.UserName.
        </div>
        <div class="card-body">
            @for (int i = 0; i < Model.Count; i++)
            {
                <div class="form-check m-1">
                    <input type="hidden" asp-for="@Model[i].RoleId" />
                    <input type="hidden" asp-for="@Model[i].RoleName" />
                    <input asp-for="@Model[i].Selected" class="form-check-input" />
                    <label class="form-check-label" asp-for="@Model[i].Selected">
                        @Model[i].RoleName
                    </label>
                </div>
            }
            <div asp-validation-summary="All" class="text-danger"></div>
        </div>
        <div class="card-footer">
            <input type="submit" value="Update" class="btn btn-primary"
                   style="width:auto" />
            <a asp-action="EditUser" asp-route-id="@ViewBag.userId"
               class="btn btn-primary" style="width:auto">Cancel</a>
        </div>
    </div>
</form>

控制器:

public async Task<IActionResult> Manage(string userId)
{
    ViewBag.userId = userId;
    var user = await _userManager.FindByIdAsync(userId);
    if (user == null)
    {
        ViewBag.ErrorMessage = $"User with Id = {userId} cannot be found";
        return View("NotFound");
    }
    ViewBag.UserName = user.UserName;
    var model = new List<ManageUserRolesViewModel>();
    foreach (var role in _roleManager.Roles.ToList())
    {
        var userRolesViewModel = new ManageUserRolesViewModel
        {
            RoleId = role.Id,
            RoleName = role.Name
        };
        if (await _userManager.IsInRoleAsync(user, role.Name))
        {
            userRolesViewModel.Selected = true;
        }
        else
        {
            userRolesViewModel.Selected = false;
        }
        model.Add(userRolesViewModel);
    }
    return View(model);
}

这应该是我的预期输出,有没有办法做到这一点?谢谢

在此处输入图像描述

标签: c#asp.netasp.net-mvcasp.net-coreasp.net-identity

解决方案


推荐阅读