今天接续昨天的内容,把会员管理页面做一个收尾
这边可以用 ViewModel 来呈现使用者列表
public class OnlineShopUserViewModel
{
public OnlineShopUser User { get; set; }
public string RoleName { get; set; }
}
public async Task<IActionResult> ListUsers()
{
List<OnlineShopUserViewModel> userViewModels = new List<OnlineShopUserViewModel>();
var AllUsers = _userManager.Users.ToList();
foreach (var user in AllUsers)
{
userViewModels.Add(new OnlineShopUserViewModel
{
User = user,
RoleName = string.Join("", await _userManager.GetRolesAsync(user))
});
}
return View(userViewModels);
}
[HttpGet]
public async Task<IActionResult> DeleteUser(string id)
{
var user = await _userManager.FindByIdAsync(id);
if (user == null)
{
return NotFound();
}
return View(user);
}
[HttpPost]
public async Task<IActionResult> DeleteConfirmed(string id)
{
var user = await _userManager.FindByIdAsync(id);
var result = await _userManager.DeleteAsync(user);
if (result.Succeeded)
{
return RedirectToAction("ListUsers");
}
foreach (var error in result.Errors)
{
ModelState.AddModelError("", error.Description);
}
return View("ListUsers");
}
後台就先到这边告一个段落,明天就来处理前台的部分吧
>>: Day 15 - Ping Sweeping 与 Port Scanning
slice与array的差异。 类型的差异 array属於值类型,同属於值类型的包含,基础数据类型、...
笔者最近在维护前人弃坑的C# 专案的程序码看到?跟:,这是啥东西? 一开始以为是lambda 在C#...
在选择静态档案产生器时,最常看到的就是这三个的比较,我一样会简单的分析三者的特色,并且在最後提供我的...
昨天讲了函式,那今天来讲讲参数吧! 那老样子若有错误或需要补充的地方,也欢迎在下方留言让我知道喔~~...
前言 上一篇我们建立好了一个Messaging API的channel 那接下来我们就要开始写程序了...