удаление, редактирование и детали для пользователя в административном контроллере MVC 5 - PullRequest
0 голосов
/ 21 апреля 2020

В моем приложении я пытаюсь добавить действия по созданию, редактированию, удалению и детализации. Действие Создать, кажется, работает просто отлично. Однако в действии удаления у меня есть следующее:

 [HttpPost]
        public async Task<ActionResult> DeleteAspUsers(string id)
        {
            //this is the users model 
            AspUsers users = new AspUsers();
            var userStore = new UserStore<IdentityUser>();
            var userManager = new UserManager<IdentityUser>(userStore);

            IdentityUser theUser = new IdentityUser() { Id = users.ID };

            theUser = userManager.FindById(theUser.Id);
            if (theUser != null)
            {
                IdentityResult result = await userManager.DeleteAsync(theUser);    

            }
            else
            {
                ModelState.AddModelError("", "user was not found");
            }

            return RedirectToAction ("GetAllUsers/");

        }

и представление для получения всех пользователей в таблице, как показано ниже:


@model IEnumerable<IdentityUser>

@using Microsoft.AspNet.Identity.EntityFramework;
@using Microsoft.AspNet.Identity.Owin;
@using Microsoft.AspNet.Identity;
@using RidesApp.Controllers;
@using RidesApp.Models;


@{
    ViewBag.Title = "GetAllUsers";
    Layout = "~/Views/Shared/AdminsLayout.cshtml";
}

<h2>GetAllUsers</h2>

<p>
    @Html.ActionLink("Create New", "Create")
</p>
<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Id)
        </th>

        <th>
            @Html.DisplayNameFor(model => model.Email)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.EmailConfirmed)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.PhoneNumber)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.PhoneNumberConfirmed)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.TwoFactorEnabled)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.LockoutEndDateUtc)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.LockoutEnabled)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.AccessFailedCount)
        </th>
        <th>
            @Html.DisplayNameFor(model => model.UserName)
        </th>
        <th></th>
    </tr>

    @foreach (var item in Model)
    {
<tr>

    <td>
        @Html.DisplayFor(modelItem => item.Id)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Email)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.EmailConfirmed)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.PhoneNumber)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.PhoneNumberConfirmed)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.TwoFactorEnabled)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.LockoutEndDateUtc)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.LockoutEnabled)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.AccessFailedCount)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.UserName)
    </td>
    <td>
        @Html.ActionLink("Edit", "Edit", new { id = item.Id }) |
        @Html.ActionLink("Details", "Details", new { id = item.Id }) |
        @Html.ActionLink("Delete", "DeleteAspUsers", new {id= item.Id})
    </td>
</tr>
    }

</table>

Я пытался использовать " У меня есть модель AspUsers, но я получил ошибку, поэтому я попытался использовать (@model IEnumerable), и это сработало. Однако, когда я нажимаю удалить, я получаю сообщение об ошибке «404», которое не было найдено. Я обычно использовал свою собственную базу данных dtat (подключая ее с сервера sql). Я добавил личность в существующее приложение. Итак, в основном у меня есть свои собственные таблицы для пользователей, но теперь у меня есть aspnetUsers и другие таблицы, которые были сгенерированы после добавления структуры идентификации. это мои текущие таблицы:

[this is my current tables

Мне также интересно, как бы я сгенерировал редактирование и отобразил детали пользователя в действии «детали».

Буду признателен за любую помощь. Спасибо.

1 Ответ

0 голосов
/ 21 апреля 2020

попробуйте использовать

return RedirectToAction ("GetAllUsers");

вместо

return RedirectToAction ("GetAllUsers/");
...