C# 如何在Asp.Net核心MVC中管理控制器/存储库中的错误处理并在视图中显示错误
我已经创建了Asp.Net核心MVC应用程序 我想创建一个用于更新用户的示例表单,捕获一些特定的异常并在表单中显示它们 我想捕获两种类型的异常/错误: 1) 表单验证 2) 存储库异常 我有以下代码: UserRepositoryC# 如何在Asp.Net核心MVC中管理控制器/存储库中的错误处理并在视图中显示错误,c#,validation,asp.net-core,error-handling,C#,Validation,Asp.net Core,Error Handling,我已经创建了Asp.Net核心MVC应用程序 我想创建一个用于更新用户的示例表单,捕获一些特定的异常并在表单中显示它们 我想捕获两种类型的异常/错误: 1) 表单验证 2) 存储库异常 我有以下代码: UserRepository public async Task<UserDTO> UpdateUserAsync(UserDTO user) { var userIdentity = await _userManager.FindByIdAsy
public async Task<UserDTO> UpdateUserAsync(UserDTO user)
{
var userIdentity = await _userManager.FindByIdAsync(user.Id.ToString());
if (userIdentity == null) throw new UserFriendlyException("User does not exist");
userIdentity.MapTo(user);
await _userManager.UpdateAsync(userIdentity);
var userDto = userIdentity.ToModel();
return userDto;
}
在视图中
<div asp-validation-summary="All" class="text-danger"></div>
这是处理上述错误/异常的好方法吗?对于这样的事情,最好的做法是什么?有更好的模式吗?你有没有找到一种模式?
public class UserFriendlyException : Exception
{
public UserFriendlyException()
{
}
public UserFriendlyException(string message) : base(message)
{
}
}
<div asp-validation-summary="All" class="text-danger"></div>
public class UserDTO
{
[Required]
public int Id { get; set; }
[Required]
public string UserName { get; set; }
[Required]
public string Email { get; set; }
public bool EmailConfirmed { get; set; }
public string PhoneNumber { get; set; }
public bool PhoneNumberConfirmed { get; set; }
public bool LockoutEnabled { get; set; }
public bool TwoFactorEnabled { get; set; }
public string AccessFailedCount { get; set; }
public string LockoutEnd { get; set; }
}