Zmiana stylów z poziomu użytkownika

Odpowiedz Nowy wątek
2018-12-25 18:13
0

Hej, zastanawiam się nad najlepszym rozwiązaniem problemu.

W ASP.NET Core chcę utworzyć widok z którego autoryzowany użytkownik będzie mógł ustawić kolor tła dla poszczególnych grup elementów widoku. Na przykład kolor tła dla czcionki wpisów blogu.

Na chwilę obecną mam tylko rozwiązanie tego rodzaju: użytkownik wybiera kolor -> hex color code jest zapisywany na serwerze jako łańcuch string -> view component (wołany przez layout) tworzy ViewBagi z kolorami odczytanymi z serwera-> widoki przypisują ViewBagi stylom. Na przykład:

View Component:
ViewBag.Element1BackgroundColor = _repository.ColorSettings.GetText1Color();

View:
<div style="color: @ViewBag.Element1BackgroundColor">

Czy znacie jakieś bardziej eleganckie rozwiązanie? Które by na przykład nadpisywało style?

edytowany 3x, ostatnio: bakunet, 2018-12-25 18:14

Pozostało 580 znaków

2018-12-26 01:20
Webowy Koziołek
1

Uzyj JS i po prostu podmień styl.

Pozostało 580 znaków

2018-12-26 13:50
0
Webowy Koziołek napisał(a):

Uzyj JS i po prostu podmień styl.

Ale nie chcę podmieniać całego pliku, tylko dać możliwość edycji poszczególnych stylów.

Pozostało 580 znaków

2018-12-28 14:32
0
Webowy Koziołek napisał(a):

Uzyj JS i po prostu podmień styl.

Po części skorzystałem z Twojego pomysłu. Dla wybranych klas przy użyciu jQuery dodałem style, gdzie kolory były dostarczone przez globalnie dostępny ViewBag.

Dla niektórych elementów HTML stworzyłem TagHelper..

Próbowałem przez JS dodawać atrybuty rozpoznawane przez TagHelper, ale się przekonałem, że TagHelper jest kompilowany przed funkcją JS i DOM, więc zostawałem z tagami w HTML nieprzerobionymi na style i nie jestem pewien czy da się to jakoś przeskoczyć...?

Bądź co bądź ViewBag i TagHelper zrobiły swoje.

Pozostało 580 znaków

2018-12-28 19:00
0

Ja bym trzymał to w konfiguracji usera i tam dał mu możliwość konfiguracji wyglądu w założonym przez siebie zakresie.
Dalej pobrałbym RAZ tą konfigurację i użył jej. Nie upierając sie zbytnio, JS nie jest potrzebny.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0