В моем приложении я пытаюсь добавить действия по созданию, редактированию, удалению и детализации. Действие Создать, кажется, работает просто отлично. Однако в действии удаления у меня есть следующее:
[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](https://i.stack.imgur.com/X9SXR.jpg)
Мне также интересно, как бы я сгенерировал редактирование и отобразил детали пользователя в действии «детали».
Буду признателен за любую помощь. Спасибо.