ASP .NET MVC - Html.ValidationSummary - nowa linia

ASP .NET MVC - Html.ValidationSummary - nowa linia
A9
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 2 lata
  • 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?

edytowany 1x, ostatnio: amator963
Mateusz Z
  • Rejestracja:prawie 6 lat
  • Ostatnio:około 5 lat
  • Postów:1
1

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

A9
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 2 lata
  • Postów:100
0

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

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:minuta
  • 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()))
edytowany 1x, ostatnio: somekind
WeiXiao
  • Rejestracja:około 9 lat
  • Ostatnio:około 5 godzin
  • Postów:5138
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

edytowany 7x, ostatnio: WeiXiao
Zobacz pozostałe 4 komentarze
somekind
Właśnie do mnie dotarło, że tu chyba co innego jest źle.
WeiXiao
no generalnie tu wiele rzeczy jest złe m.in używanie mvc, html raw itd.
somekind
Ta... Tylko node!
WeiXiao
@somekind: możesz nie lubić, niemniej jednak ułatwia życie gdy strona jest jako tako dynamiczna oraz łatwiej podzielić się pracą
somekind
Ale czego nie lubię i o jakim podziale pracy mówisz?
A9
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 2 lata
  • 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.