微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有任何原因将错误消息数组传递给 toastr js.我想使用数组显示多个 toastr 消息

如何解决是否有任何原因将错误消息数组传递给 toastr js.我想使用数组显示多个 toastr 消息

有人有什么解决办法吗?

控制器详情

这是在 for 循环中生成多个错误消息的控制器

 public async Task<IActionResult> Register(Registerviewmodel model)
        {
           var result = await userManager.CreateAsync(user,model.Password);

            if (result.Succeeded)
            {
                var token = await userManager.GenerateEmailConfirmationTokenAsync(user);

                var confirmationLink = Url.Action("ConfirmEmail","AccountRoles",new { userId = user.Id,token = token },Request.Scheme);
               

            }

            foreach (var error in result.Errors)
            {
                TempData["msg"] = error.Description;
            }


            return View(model);
        }

js

 $(document).ready(function () {
                var a = '@TempData["msg"]';
                if (a != '')
                    toastr.error(a)    
            })

解决方法

控制器方法中的 for 循环不会生成错误消息数组。 行 TempData["msg"] = error.Description 在循环中重复,这意味着在您的 javascript 调用 @TempData["msg"] 将导致仅检索最后一条错误消息。

您需要生成错误消息列表,然后将它们存储在 TempData 中。

TempData["msg"] = result.Errors.Select(x => x.Description).ToList();

然后在 javascript 中,您遍历结果数组并为每个数组显示一条错误消息。

$(document).ready(function () {
    var errors = @Html.Raw(Json.Serialize(TempData["msg"]));
    errors.forEach(x => toastr.error(x));
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。