我想使用以下代碼洗掉用戶:
private readonly UserManager<IdentityUser> userManager;
public UserPage(UserManager<IdentityUser> userManager)
{
this.userManager = userManager;
}
public async Task<IActionResult> OnPostDelete(string id)
{
IdentityUser user = await userManager.FindByIdAsync(id);
if(user != null)
{
var result = await userManager.DeleteAsync(user);
if (result.Succeeded)
{
return RedirectToAction("UserPage");
}
else
{
foreach (IdentityError error in result.Errors)
ModelState.AddModelError("", error.Description);
}
}
return Page();
}
這是我得到錯誤的cshtml檔案:'Foreach陳述句不能對UserPage型別的變數進行操作,因為Userpage不包含'GetEnumerator'的公共實體或擴展定義'
<table class="table table-sm table-bordered">
<tr><th>ID</th><th>Name</th><th>Email</th></tr>
@foreach (IdentityUser user in *Model*)
{
<tr>
<td>@user.Id</td>
<td>@user.UserName</td>
<td>@user.Email</td>
<td>
<form asp-page-handler="Delete" asp-route-id="@user.Id" method="post">
<button type="submit" class="btn btn-sm btn-danger">
Delete
</button>
</form>
</td>
</tr>
}
我該如何解決這個問題?提前致謝。
uj5u.com熱心網友回復:
“UserPage”不包含“GetEnumerator”的公共實體或擴展定義
foreach 陳述句用于遍歷實作 System.Collections.IEnumerable 或 System.Collections.Generic.IEnumerable 介面的物件集合。
所以報錯是因為的型別 *Model* 不正確。需要將其改為實作System.Collections.IEnumerable或System.Collections.Generic.IEnumerable介面的物件集合。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/450077.html
標籤:网 asp.net 核心 asp.net 身份 剃刀页面
上一篇:如何使用剃刀編輯資料庫中的檔案?
