Передайте значение от кликаемого пользователя для просмотра модели - PullRequest
1 голос
/ 26 апреля 2019

Я создаю основное меню администратора.На странице индекса у меня есть все пользователи в списке.Когда вы нажимаете кнопку UpdateRole, вы будете перенаправлены на страницу UpdateRole, где вы можете дать пользователю новую роль, вставив имя роли.Как я могу передать значение пользователя, на которого я нажал, в UpdateRoleViewModel, чтобы я мог использовать его впоследствии?

UpdateRole.cshtml


@{
    ViewData["Title"] = "UpdateRole";
}

<h1 class="headingMarginBottom display-4">Update user role</h1>

<div class="form-row">
    <form class="col-lg-7" method="post">
        <div class="form-group">
            <label asp-for="RoleName">RoleName</label>
            <input class="form-control" asp-for="RoleName" />
            <span asp-validation-for="RoleName"></span>
        </div>

        <div class="form-group">
            <button class="btn btn-success" type="submit">Create!</button>
        </div>
    </form>
</div>

UpdateRoleViewModel.cs

    {
        [Required]
        public string UserName { get; set; }

        [Required]
        public string RoleName { get; set; }
    }

Index.cshtml


@{
    ViewData["Title"] = "Admin Dashboard";

}
<div class="container">
    <div class="row">
        <div class="col-md-11 text-md-center">
            <h1 class="headingMarginBottom display-4">Administration Dashboard</h1>
        </div>
    </div>
    <div class="row">
        <div class="col-md-12">
            <h1 class="display-4">Players</h1>
            <div>
                @foreach (var user in Model.Users)
                {
                    <partial name="_UserPartial" model="user" />
                    <hr />
                }
            </div>
        </div>
    </div>
</div>

_UserPartial.cshtml

@model ApplicationUserViewModel
@{
    ViewData["Title"] = "_UserPartial";
}

<h4 class="teamDescription">Username: @Model.Username Email: @Model.Username </h4>

<a asp-area="Administration" asp-controller="Admin" asp-action="UpdateRole" asp-route-id="@Model.Username" class="btn btn-default">UpdateRole</a>

1 Ответ

0 голосов
/ 29 апреля 2019

Вы можете использовать asp-route- {значение} , например:

<a asp-area="Administration" asp-controller="Admin" asp-action="UpdateRole" asp-route-username="@Model.Username" asp-route-rolename="@Model.RoleName" class="btn btn-default">UpdateRole</a>

и получить доступ к значению, используя viewModel:

public async Task<IActionResult> UpdateRole(UpdateRoleViewModel model)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...