OnGet()
populates UnapprovedApplications
with data from AspNetUsers
.
The user ids are correct at this time.
c4d69cbe-436e-4d74-bc7d-c4a99a8cbf34
e184da25-687b-4e51-9f1d-c3a93a732ec1
OnPostAsync()
, however, returns the user ids as
20b6af04-ecb5-49c0-b4e4-bdb172bd19c7
5a61fbce-4c69-4a15-be66-725c5ab4b884
Why is the data in UnapprovedApplications
changing?
How do I keep these data from changing?
A model ReviewApplicationModel
is constructed as so
[BindProperty]
public IList<ApplicationUser> UnapprovedApplications { get; set; }
public void OnGet(string returnUrl = null)
{
ReturnUrl = returnUrl;
UnapprovedApplications = new List<ApplicationUser>();
foreach (var user in userManager.Users.Where(x => !x.Approved))
{
System.Diagnostics.Debug.WriteLine(user.Id);
UnapprovedApplications.Add(user);
}
}
public async Task<IActionResult> OnPostAsync()
{
if (!ModelState.IsValid)
{
return Page();
}
foreach (var user in UnapprovedApplications)
System.Diagnostics.Debug.WriteLine(user.Id);
return RedirectToPage();
}
with a view of
@page
@model ReviewApplicationsModel
@{
ViewData["Title"] = "Review Applications";
ViewData["ActivePage"] = ManageNavPages.ReviewApplications;
}
<h4>@ViewData["Title"]</h4>
<div class="row">
<div class="col-md-6">
<form asp-route-returnUrl="@Model.ReturnUrl" method="post">
<button type="submit" class="btn btn-primary">Approve Selected Applications</button>
<table class="table">
<thead>
<tr>
<th>
@Html.DisplayNameFor(x => x.UnapprovedApplications.FirstOrDefault().Id)
</th>
<th>
@Html.DisplayNameFor(x => x.UnapprovedApplications.FirstOrDefault().Organization)
</th>
<th>
@Html.DisplayNameFor(x => x.UnapprovedApplications.FirstOrDefault().FEIEIN)
</th>
<th>
@Html.DisplayNameFor(x => x.UnapprovedApplications.FirstOrDefault().State)
</th>
<th>
@Html.DisplayNameFor(x => x.UnapprovedApplications.FirstOrDefault().PrincipalCity)
</th>
<th>
@Html.DisplayNameFor(x => x.UnapprovedApplications.FirstOrDefault().PhoneNumber)
</th>
<th>
Approved
</th>
<th></th>
</tr>
</thead>
<tbody>
@for (var i = 0; i < Model.UnapprovedApplications.Count(); i++)
{
<tr>
<td>@Model.UnapprovedApplications[i].Id</td>
<td>@Model.UnapprovedApplications[i].Organization</td>
<td>@Model.UnapprovedApplications[i].FEIEIN)</td>
<td>@Model.UnapprovedApplications[i].State</td>
<td>@Model.UnapprovedApplications[i].PrincipalCity</td>
<td>@Model.UnapprovedApplications[i].PhoneNumber</td>
<td>
<input asp-for="@Model.UnapprovedApplications[i].Approved" class="form-control" />
<span asp-validation-for="@Model.UnapprovedApplications[i].Approved" class="text-danger"></span>
</td>
</tr>
}
</tbody>
</table>
</form>
</div>
</div>
@section Scripts {
<partial name="_ValidationScriptsPartial" />
}