webForumDet fria alternativet

ASP.NET-MVC: Globala sektioner och MasterPages

.NET

6 svar · 1 065 visningar · startad av dAEk

Medlem sedan feb. 20041 816 inlägg
Frågan#1

Kollar man på bloggar har de olika sektioner som återanvänds, tänk arkiv, kategorier och etiketter. Dom här sektionerna tänker jag mig hör hemma i egna usercontroller som renderas av en MasterPage. Samtidigt känns det fel eftersom man då inte längre följer MVC.

En annan tanke jag haft är att låta sektionerna vara ContentPlaceHolders och låta respektive vy/action fylla dem. Då kan man skapa en arvshierarki med en bascontroller som ser till att hämta och fylla på med data så att man slipper göra det på flera ställen. Samtidigt känns det tokigt att det är upp till varje vy/action att populera t.ex. en meny eller ett taggmoln. Jag tänker mig att sidorna borde vara glatt oventandes om sidoramverket (sektionerna utanför innehållet).

Som ni märker har jag fastnat lite här.

Hur har ni gjort och hur är det egentligen tänkt att man skall göra?

Medlem sedan jan. 20103 inlägg
#2

Jag använde mig utav Html.RenderAction<T>(). Finns i MVC Future assembliet om jag inte missminner mig.

Vad snutten gör är att den på din masterpage requestar en Action och outputar dess result rakt in i HTML:en.

Alla andra metoder som du provat känns lite väl mäktiga, t.ex. BaseControllers och BaseViewModels funkar, men tycker det blir ännu kladdigare bara.

Just my 2 cents.

Medlem sedan dec. 19995 874 inlägg
#3

Japp RencerAction tycker jag också fungerar bra, även om det bryter mot det "rena" MVC-tänket en del. Men det kan det vara värt :)

Medlem sedan feb. 20041 816 inlägg
#4

Jo, tanken med en BaseController är väl mer av en snabbfix än vad det är en elegant lösning. Ska undersöka era tips lite mer vid tillfälle.

Varför känns det här som en lite bortglömd punkt? Har inte koll på vad MVC Future är för lib än men om man behöver en komponent för att få till det på ett snyggt sätt känns det lite som en designmiss. Fast det är kanske lite dumt att uttala sig när man sitter och latjar med första projektet. :)

Medlem sedan dec. 19995 874 inlägg
#5

RenderAction kommer i MVC 2.

http://haacked.com/archive/2009/11/18/aspnetmvc2-render-action.aspx

Medlem sedan feb. 20041 816 inlägg
#6

Jag som har lite mer erfarenhet inom Java EE tycker att ASP.NET-MVC 1 ser mycket bättre ut ur en utvecklares perspektiv jämfört med MVC-ramverken inom Java. Och så kommer 2:an som ser ut att innehålla många stora förbättringar!

ASP.NET-MVC 2 har ju redan nått RC så det känns inte optimalt att hoppa på det tåget. Det blir nog 2:an direkt.

Återkommer med följdfrågor eller en lösning när jag haft tid att koda lite.

/Glad och otålig. :)

Medlem sedan juli 20022 537 inlägg
#7

dAEk skrev:

Varför känns det här som en lite bortglömd punkt?

Det är absolut inte en bortglömd punkt, utan diskuteras väldigt mycket. :)

Det finns många sätt att lösa det på. Ett är att ha med funktionalitet i en basklass, en är att använda RenderAction, en är att ha en vymodell med extra properties för dessa delar...

Det bästa rådet jag kan ge dig är att testa de sätt som finns och köra med det som du själv trivs bäst med. :-)

282 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
153 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
152 ms — ändringar (db)