Hallo zusammen,
ich entwickle eine sehr kleine WEB ASP.NET MVC2 Anwendung und möchte HTML-Actionlinks je nach Anmeldestatus eines Benutzer ausgrauen oder aktivieren.
<li><%: Html.ActionLink("Test", "Create", "Test", new { Disabled = LoggedOnUser.LoggedIn })%></li>
Beim normalen aufrufen der Seite wird der Actionlink nun ordnungsgemäß ausgegraut, nach dem Anmelden wird auch das Property "LoggedIn" nochmal "abgefragt" (Hat jetzt auch den richtigen Status), jedoch bleibt der ActionLink ausgegraut.
Wie kann ich das ändern (ViewState evtl?)
Danke für Eure Hilfe!
Bitte wähl in Zukunft einen aussagekräftigen Titel
A programmer is just a tool, which converts coffeine into code! 🙂
äh, Anchor unterstützt doch eigentlich gar kein "Disabled" (zumindest laut selfhtml nicht). Sicher, dass der Link nicht einfach nur ausgegraut ist, weil der Browser das Ziel schon kennt?
du könntest folgendes tun:
<% if(LoggendOnUser.LoggedIn) { %>
<li><%: Html.ActionLink(...) %></li>
<% } else { %>
<li><span class="disabled">Anmelden</span></li>
<% } %>
Der Vorteil der Klugheit liegt darin, dass man sich dumm stellen kann - umgekehrt ist das schon schwieriger (K. Tucholsky)
Das Problem mit Internet-Zitaten ist, dass sie oftmals zu unrecht als authentisch angenommen werden. (K. Adenauer)
Hallo,
prinzipiell hast Du über die Standard-Funktionen von MVC die Möglichkeit in allen Views und Actions das Flag User.Identity.IsAuthenticated
abzufragen. Wenn Du ein eigenes Loginsystem verwendest ( was ich jedem abrate ) dann funktioniert das natürlich nicht.
Kann der Actionlink mit dem Disabled überhaupt was anfangen?
Ansonsten schau mal Schritt für Schritt welchen Status das Flag hat und was wirklich an der View ankommt.
Hinweis: Man "sollte" Links nicht nach dem Status des Anwenders generieren, sondern an der jeweiligen Seite eine Authentifizierung anbieten.
Zudem rate ich von der Verwendung von ActionLinks ab, da diese unheimlich unperformant sind. Verwendet lieber direkt HMLT und fülle das href
-Attribute mit Url.Action() oder Url.Route()
Gruß
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hallo Grumbler85, so hat es nun funktioniert, vielen Dank!
Es handelt sich hierbei nur um eine kleine Übersichtswebseite für ein größeres Programm von mir.
Vielen Dank!
Bitte keine Full-Quotes ([Hinweis] Wie poste ich richtig? 2.3)
A programmer is just a tool, which converts coffeine into code! 🙂