通过 toastr 显示多个错误

Show multiple errors by toastr

我正在尝试在用户注册页面的 toastr 视图中显示多条错误消息

我使用 TempData["errors"]

将错误消息列表传递给 View

但我不知道如何显示字符串列表(错误)

我这样做是为了成功消息,代码如下

register.cshtml

@if (TempData["success"] != null)
    {
<script>
    $(document).ready(function() {

        var message = '@(TempData["success"])';

        toastr.options = {
            "rtl": true,
            "closeButton": false,
            "newestOnTop": false,
            "progressBar": false,
            "positionClass": "toast-top-left",
            "preventDuplicates": true,
            "onclick": null,
            "showDuration": "300",
            "hideDuration": "1000",
            "timeOut": "5000",
            "extendedTimeOut": "1000",
            "showEasing": "swing",
            "hideEasing": "linear",
            "showMethod": "fadeIn",
            "hideMethod": "fadeOut"
        };

        toastr.success(message);


    });

Toastr 支持带有 HTML 标签的消息。所以你可以放一个 <br/> 标签作为换行符。

试试这个。

TempData["Errors"] = string.Join("<br/>", Errors);

其中 Errors 是一个集合。

这是截图

我的建议是:

您可以在控制器中将列表转换为字符串,如下所示:

var err = new List<string>() { "error1", "error2", "error3" };
var er = string.Join(",", err.ToArray());
 TempData["errors"] = er;

然后在您的 javascript 代码中用 <br/> 替换“,”,如下所示:

var message1 = '@TempData["errors"]';
var message2 = message1.replaceAll(',', '<br/>');
toastr.error(message2, 'Errors');

结果:

但如果您将列表转换为字符串,如下所示:

控制器:

var err = new List<string>() { "error1", "error2", "error3" };
var er1 = string.Join("<br/>", err.ToArray());
TempData["error?"] = er1;

Js:

var message3 = '@TempData["error?"]';
toastr.error(message3, 'Errors');

结果:

如果您想发送个别错误信息: 控制器:

var err = new List<string>() { "error1", "error2", "error3" };
TempData["error!"] = err;

Js:

var message4 = @Html.Raw(Json.Serialize(TempData["error!"]));
 message4.forEach(x => toastr.error(x));

结果: