Estoy tratando de mostrar varios mensajes de error a la vista de toastr, para la página de registro de usuario.
Pasé una lista de mensajes de error a Ver con TempData["errores"]
pero no sé cómo mostrar una lista de cadenas (para errores)
Hice esto para un mensaje exitoso y el código es el siguiente
registro.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 admite mensajes con etiquetas HTML en ellos. Entonces puedes poner una etiqueta <br/> para un salto de línea.
Prueba esto.
TempData["Errors"] = string.Join("<br/>", Errors); Donde Errors es una colección.
Aquí está la captura de pantalla
Mi sugerencia es que:
Puede convertir la lista en una cadena en su controlador de la siguiente manera:
var err = new List<string>() { "error1", "error2", "error3" }; var er = string.Join(",", err.ToArray()); TempData["errors"] = er; luego reemplace "," con <br/> en sus códigos javascript de la siguiente manera:
var message1 = '@TempData["errors"]'; var message2 = message1.replaceAll(',', '<br/>'); toastr.error(message2, 'Errors');Resultado:
pero si cambia la lista a una cadena de la siguiente manera:
controlador:
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');Resultado:
Si desea enviar un mensaje de error individual: controlador:
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));Resultado: