ASP .NET MVC - Html.ValidationSummary - nowa linia

ASP .NET MVC - Html.ValidationSummary - nowa linia
A9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 100
0

Cześć, mam pytanie w jaki sposób w Html.ValidationSummary wymusić utworzenie nowej linii? Przyjmijmy, że mam metodę post w kontrolerze :

Kopiuj
 [HttpPost]
        public ActionResult Index()
        {
            string validationMessage = "Podane hasło nie spełnia restrykcji. -Wymagane min 8 znaków. -Wymagane znaki specjalne";

            ModelState.AddModelError(String.Empty, validationMessage);
            return View();
        }

Przyjmijmy, że w zmiennej validationMessage mam błąd który dodaje do ModelState. Natomiast w wiodoku mam tylko wywołanie czyli: "@html.ValidationSummary()",
natomiast w stringu validationSummary chcę utworzyć nową linię przed każdym "-", czyli chciałbym wyświetlić status w formacie:

Kopiuj
Podane hasło nie spełnia restrykcji. 
-Wymagane min 8 znaków. 
-Wymagane znaki specjalne

Próbowałem przed znakami "-' stawiać "< br >" oraz znak "\n" ale i tak ostatecznie wszystko wyświetli mi się w jednej linii w jaki sposób wymusić utworzenie nowej linii?

Mateusz Z
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1
1

próbowałeś może z Environment.NewLine ?

A9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 100
0

Próbowałem też z Environment.NewLine - ale niestety, też nie działa

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
3

No raczej trudno, żeby systemowa nowa linia zadziałała w HTMLu.

Kopiuj
@Html.Raw(HttpUtility.HtmlDecode(Html.ValidationSummary(true, "Podane hasło nie spełnia restrykcji. <br> -Wymagane min 8 znaków. <br> -Wymagane znaki specjalne").ToHtmlString()))
WeiXiao
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5226
2

Możesz zrobić tak jak @somekind sugeruje, lub możesz też zrobić to jak biali ludzie i skorzystać z np. znaczników htmla typu

<pre>

Kopiuj
var str = @$"Podane hasło nie spełnia restrykcji. {Environment.NewLine}-Wymagane min 8 znaków. {Environment.NewLine}-Wymagane znaki specjalne";
return View("Index", str);
Kopiuj
<pre>@Model</pre>

i wtedy nawet ta "linia systemowa" wyświetli się jako

screenshot-20200207195837.png

A9
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 100
0

Dodałem rozwiazanie @somekind i pomogło. Dzięki wszystkim za pomoc ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.