Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[ASP.NET] Database benaderen vanuit _Layout

Pagina: 1
Acties:

  • Erwin537
  • Registratie: December 2008
  • Laatst online: 18:25
Beste,

In een ASP.NET MVC4 webapplicatie heb ik simplemembership gebruikt. Nu heb ik voor deze webapplicatie meerdere stylesheets zodat de gebruiker een thema kan selecteren dat hem/haar aanspreekt. Nu wil ik afhankelijk van een gegeven in de tabel met users een bepaalde CSS includen in de _Layout pagina.

Ik heb gekeken hoe ik custom velden vanuit de layout pagina kan benaderen, maar kom hier niet echt uit. Ik weet niet hoe ik dit überhaupt moet aanpakken en zoeken op de (voor mij) meest logische keywords (get custom field simplemembership asp.net, access custom field simplemembership) leveren mij tot nu toe niets op.

Hoe kan ik dit het beste aanpakken?
  • Met @User.Identity kan ik geen custom velden benaderen afaik.
  • Met een methode in een ApiController?
Verder dan dit kom ik eigenlijk niet.

Kort gezegd: Hoe include ik een css bestand afhankelijk van een custom veld bij een user met simplemembership?

Bij voorbaat dank :)

  • Laurens-R
  • Registratie: December 2002
  • Laatst online: 29-12-2024
Je kan User.Identity wel gebruiken om meer informatie uit je database te halen.

Wat je normaliter doet is je db logica in je controller aanroepen (of de layer aanspreken die je daarvoor gebruikt) en dmv strongly typed view je gebruikers gegevens doorgeven aan je view. Deze kan je gebruiken icm de viewengine syntax (waarschijnlijk Razor) om de html aan te passen.

  • Haan
  • Registratie: Februari 2004
  • Laatst online: 16:52

Haan

dotnetter

Je kan beter zoeken op wat je probeert te bereiken, in plaats van al meteen in allerlei oplossingen te denken ;) Zo kom ik met zoeken op het probleem uit op dit: http://stackoverflow.com/...elect-there-own-theme-css

Volgens mij moet je daarmee wel tot een werkbare oplossing komen.

Kater? Eerst water, de rest komt later


  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 23:39
Laurens-R schreef op donderdag 16 mei 2013 @ 11:22:
Je kan User.Identity wel gebruiken om meer informatie uit je database te halen.

Wat je normaliter doet is je db logica in je controller aanroepen (of de layer aanspreken die je daarvoor gebruikt) en dmv strongly typed view je gebruikers gegevens doorgeven aan je view. Deze kan je gebruiken icm de viewengine syntax (waarschijnlijk Razor) om de html aan te passen.
Precies.
Je zou vanuit je controller bijvoorbeeld een Viewbag.Theme mee kunnen geven. Die kun je vervolgens simpel opvangen in je view, in dit geval dus _layout.cshtml.

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
InZane schreef op donderdag 16 mei 2013 @ 12:05:
[...]


Precies.
Je zou vanuit je controller bijvoorbeeld een Viewbag.Theme mee kunnen geven. Die kun je vervolgens simpel opvangen in je view, in dit geval dus _layout.cshtml.
ViewBag is leuk maar zou je eigenlijk niet moeten gebruiken, je maakt dan effecties korte metten met je Model.

Controller haalt gegevens op uit de database, stopt ze in een model, de View kan weer deze dingen uit je model halen. Dat is zo'n beetje het MVC princiepe.

  • InZane
  • Registratie: Oktober 2000
  • Laatst online: 23:39
Megamind schreef op donderdag 16 mei 2013 @ 12:09:
[...]

ViewBag is leuk maar zou je eigenlijk niet moeten gebruiken, je maakt dan effecties korte metten met je Model.

Controller haalt gegevens op uit de database, stopt ze in een model, de View kan weer deze dingen uit je model halen. Dat is zo'n beetje het MVC princiepe.
Dat is inderdaad mooier ja en zou ook zeker mijn voorkeur hebben. Het was maar een voorbeeld :)

  • Erwin537
  • Registratie: December 2008
  • Laatst online: 18:25
Laurens-R schreef op donderdag 16 mei 2013 @ 11:22:
Je kan User.Identity wel gebruiken om meer informatie uit je database te halen.
Met User.Identity kan ik niets behalve AuthenticationType, IsAuthenticated en de username ophalen? Of bedoel je dat ik via een controller op de user zoek, en daarmee de gegevens ophaal?
Wat je normaliter doet is je db logica in je controller aanroepen (of de layer aanspreken die je daarvoor gebruikt) en dmv strongly typed view je gebruikers gegevens doorgeven aan je view. Deze kan je gebruiken icm de viewengine syntax (waarschijnlijk Razor) om de html aan te passen.
Dan zou ik in elke controller dit moeten zetten, of een controller maken die alle andere controllers erven waarin de style in in een viewbag wordt gezet? En ik gebruik inderdaad Razor :)
Haan schreef op donderdag 16 mei 2013 @ 11:23:
Je kan beter zoeken op wat je probeert te bereiken, in plaats van al meteen in allerlei oplossingen te denken ;) Zo kom ik met zoeken op het probleem uit op dit: http://stackoverflow.com/...elect-there-own-theme-css

Volgens mij moet je daarmee wel tot een werkbare oplossing komen.
De (specifieke) oplossing die je aandraagt werkt wel, maar werkt met alternate stylesheets. Om te zorgen dat hij de juiste pakt moet ik het alsnog vanuit de database laden (of vanuit een cookie, maar dat heeft niet mijn voorkeur).

EDIT: Die zoekwijze is inderdaad wel beter!
Megamind schreef op donderdag 16 mei 2013 @ 12:09:
[...]

ViewBag is leuk maar zou je eigenlijk niet moeten gebruiken, je maakt dan effecties korte metten met je Model.

Controller haalt gegevens op uit de database, stopt ze in een model, de View kan weer deze dingen uit je model halen. Dat is zo'n beetje het MVC princiepe.
Zou dat dan (zoals ik eerder al zei) over alle pagina's kunnen door het slechts in één controller uit te werken?

Nogmaals allen bedankt voor jullie reacties.

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Erwin537 schreef op donderdag 16 mei 2013 @ 12:41:
[...]
Zou dat dan (zoals ik eerder al zei) over alle pagina's kunnen door het slechts in één controller uit te werken?

Nogmaals allen bedankt voor jullie reacties.
Je kan een base controller gebruiken of een custom identity gebruiken waar de gegevens in geladen worden.

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 06-09 17:51
Megamind schreef op donderdag 16 mei 2013 @ 12:53:
[...]

Je kan een base controller gebruiken of een custom identity gebruiken waar de gegevens in geladen worden.
Je kunt het ook niet smerig doen en een child action in je layout pagina aanroepen. Daar zijn die dingen voor bedoeld.

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
Wat is er mis met een base model? Ik wil bijvoorbeeld kunnen aangeven welke pagina aactief moet zijn in de knoppenbalk, dan moet ik dan in elk model gaan defineren, kan ik het ook niet in mijn _Layout gebruiken. De layout laat je dan de basemodel als model gebruiken.
Pagina: 1