Ich entwickle eine Website in ASP.NET MVC, wo ich verschiedene Abschnitte einer Ansicht für Benutzer mit verschiedenen Sicherheitsstufen anzeigen möchte. Im Wesentlichen sind die Ansichten identisch, aber Benutzer mit höheren Sicherheitsstufen müssen Abschnitte anzeigen können, die nicht von Benutzern mit Sicherheitsstufen oberhalb von beispielsweise Administratoren angezeigt werden sollten.So zeigen Sie verschiedene Ansichtsabschnitte in einer objektorientierten Weise an
Ich weiß nicht, wie das in einer objektorientierten Weise zu tun ist. Ich denke, das kann mit Vererbung gemacht werden, aber ich weiß nicht, wie man Vererbung in der Ansicht implementiert.
Auch weiß ich, ich ein viel ifs codieren kann, etwas zu tun, wie
<% if (User has some security level) { %>
<span>show this info</span>
<% } %>
aber nicht gut riechen. Tatsache ist, dass ich nicht weiß, ob ich objektorientierte Prinzipien oder Design für diese Aufgabe verwenden soll.
Ich denke, das ist eine häufige Aufgabe, also denke ich, es gibt ein Muster, um diese Aufgabe zu erfüllen. Beispielsweise führt Stackoverflow dies aus, wenn dem Benutzer, der eine Frage (oder eine Antwort oder einen Kommentar) gepostet hat, einige Optionen (Bearbeiten, Löschen usw.) angezeigt werden und dieselben Optionen für alle anderen ausgeblendet werden.
Dies ist nicht objektorientiert, und wenn die Benutzer hat Javascript deaktiviert funktioniert nicht – eKek0
Ich stimme eKek0 zu. Darüber hinaus bin ich der festen Überzeugung, dass Views keine Logik haben sollten, was auch immer. Mit anderen Worten, der in einer Ansicht eingebettete Code sollte eine zyklomatische Komplexität von 1 haben; d.h. keine "if" -Anweisungen. –
Ich denke, Sie sind zu besorgt darüber, es zu tun OO - Ihre Ansicht sollte dumm sein und alle Logik in der Steuerung sein, nur die Informationen durch ein Modell benötigt –