C# 如何在Asp.Net核心MVC中管理控制器/存储库中的错误处理并在视图中显示错误

C# 如何在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

我已经创建了Asp.Net核心MVC应用程序

我想创建一个用于更新用户的示例表单,捕获一些特定的异常并在表单中显示它们

我想捕获两种类型的异常/错误:

1) 表单验证

2) 存储库异常

我有以下代码:

UserRepository

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; }
    }