Ich möchte Benutzerprofil zu meiner _EditUser Ansicht anzeigen und dann Benutzerprofil wie Benutzerrolle bearbeiten .. Name und E-Mail.Wie Benutzerprofil wie Benutzerrolle in Asp.Net Mvc bearbeiten?
Aber wenn es um die Benutzerrolle geht, stürzt es ab. Ich erhalte 500 (Internal Server Error) Es stürzt sich hier:
model.ApplicationRoleId = RoleManager.Roles.Single(r => r.Name == UserManager.GetRoles(id).Single()).Id;
Das ist mein mein EditUserview ist
public class EditUserViewModel
{
public string Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public List<SelectListItem> ApplicationRoles { get; set; }
public string ApplicationRoleId { get; set; }
}
Und das ist mein editUser Aktion
[HttpGet]
public async Task<IActionResult> EditUser(string id)
{
EditUserViewModel model = new EditUserViewModel();
model.ApplicationRoles = roleManager.Roles.Select(r => new SelectListItem
{
Text = r.Name,
Value = r.Id
}).ToList();
if (!String.IsNullOrEmpty(id))
{
ApplicationUser user = await userManager.FindByIdAsync(id);
if (user != null)
{
model.Name = user.Name;
model.Email = user.Email;
model.ApplicationRoleId = RoleManager.Roles.Single(r => r.Name == UserManager.GetRoles(id).Single()).Id; // Here crashing .. I don't know why.. Server 500 error
ViewBag.RoleId = new SelectList(RoleManager.Roles, "Id", "Name", model.ApplicationRoleId);
}
}
return PartialView("_EditUser", model);
}
Meiner Ansicht Seite "_EditUser.cshtml" Meine Dropdownliste der Benutzerrolle sieht so aus
<div class="form-group">
@Html.Label("Role", htmlAttributes: new { @class = "control-label col-md-6" })
<div class="col-md-12" >
@Html.DropDownList("RoleId", null, htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.ApplicationRoles, "", new { @class = "text-danger" })
</div>
</div>
/Vielen Dank im Voraus
Die 'Single' Methode schrieb wird eine Ausnahme auslösen, wenn die Auflistung (auf der Sie die Methode aufrufen) leer ist oder mehr als ein Element zurückgibt, das der Bedingung entspricht. – Shyju
@Shyju Können Sie mir bitte weiter Antwort mit Lösung geben, b/c es ist das zweite Mal, dass ich frage. Ich habe genug verstreut aber konnte es nicht lösen. –
Bitte geben Sie den Fehler nach 500 (Interner Serverfehler) – DaniDev