Frage

Datenbank?Seitenvariablen?Aufzählung?

Ich suche hier nach Meinungen.

War es hilfreich?

Lösung

Die ASP.NET-Sitemap-Funktion ist für das gebaut und funktioniert gut in vielen Fällen. Wenn Sie in einem Ort, wo Sie Ihre Menü sehen anders aus als die Sitemap, hier sind einige Abhilfen .

Wenn Sie eine dynamische Website-Struktur haben, können Sie erstellen Sitemap Anbieter . Sie könnten zu dem Punkt, wo es mehr Mühe ist, als es wert ist, aber im Allgemeinen Ihr Menü aus Ihrer Sitemap bevöl gibt Ihnen einige nette Features wie Sicherheit Trimmen, in dem die Menüoptionen für den angemeldeten Benutzer geeignet sind.

Andere Tipps

Das ist eine interessante Frage, es gibt viele Möglichkeiten, es zu nähern.

Sie können die Menüstruktur von XML laden, das ist der Weg, um die integrierten ASP.NET-Steuerelemente für die Navigation / „Sitemap“ Setup funktioniert. Dies ist wahrscheinlich eine gute Wahl insgesamt, und es ist einigermaßen gute Werkzeuge, die für sie in Visual Studio.

Wenn es ein dynamisches Menü ist, die viel ändern muss, aus einer Datenbank die Elemente bekommen könnte eine gute Idee sein, aber Sie würden auf jeden Fall wollen sie zwischenzuspeichern, so dass die DB nicht auf jeder machen Seite schlagen bekommt.

Ich habe eine Website erstellt mit der ASP.NET-Anmeldungssteuer und Formularauthentifizierung für die Mitgliedschaft / Anmeldeinformationen für eine ASP.NET Internetanwendung. Und ich bin mit einem site map Seitennavigation rel="nofollow.

Ich habe ASP.NET TreeView und Menünavigationstasten bevölkert eine Sitemap verwenden. Aber tabu Administrator nur Seiten sind sichtbar Benutzer ohne Administratorrechte.

  1. Ich habe eine web.sitemap-Sitemap-Datei. Und ich verwendete ASP.NET Web Site Administration Tool zum einrichten von Zugriffsregeln .

  2. Ich habe Navigationstasten auf meiner .master Seite ...

    <asp:SiteMapPath ID="SiteMapPath1" runat="server" />
    <asp:Menu ID="Menu1" runat="server" DataSourceID="SiteMapDataSource2" />
    <asp:TreeView ID="TreeView1" runat="server"  DataSourceID="SiteMapDataSource1" />
    <asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
    <asp:SiteMapDataSource ID="SiteMapDataSource2" runat="server" ShowStartingNode="False" />
    
  3. Ich habe securityTrimmingEnabled auf "true" in meiner Datei web.config ...

    <?xml version="1.0"?>
    <configuration>
        ...
        <system.web>
            ...
            <siteMap defaultProvider="default">
                <providers>
                    <clear/>
                    <add name="default"
                        type="System.Web.XmlSiteMapProvider"
                        siteMapFile="web.sitemap"
                        securityTrimmingEnabled="true"/>
                </providers>
            </siteMap>
            ...
        </system.web>
        ...
    </configuration>
    
  4. Ich stellte den Baum in dem master.vb Code hinter Datei ...

    Protected Sub TreeView1_DataBound( ByVal sender As Object, ByVal e As EventArgs ) Handles TreeView1.DataBound
    
        'Collapse unnecessary menu items...
        If TreeView1.SelectedNode IsNot Nothing Then
            Dim n As TreeNode = TreeView1.SelectedNode
            TreeView1.CollapseAll()
            n.Expand()
            Do Until n.Parent Is Nothing
                n = n.Parent
                n.Expand()
            Loop
        Else
            TreeView1.ExpandAll()
        End If
    
    End Sub
    

Wenn das Menü dynamisch ist pro Benutzer dann werden Sie die Datenbank für jeden Benutzer treffen müssen. Fortan würde ich wahrscheinlich in der Sitzung speichert es künftig rund um Reisen in die Datenbank zu vermeiden.

Wenn es dynamisch ist, aber die gesamte Website sieht die gleichen Gegenstände, es dann in die Datenbank aufgenommen und die Ergebnisse zwischenzuspeichern

auf eine Sitemap Bindung ist sicherlich die einfachste.

Es hängt ganz davon ab, wie die Website funktioniert. Ich bin in Übereinstimmung mit den meisten, dass eine Sitemap ist in der Regel der beste Weg, es zu tun. Wenn Sie jedoch ein CMS verwenden, dann müssen Sie es in der Datenbank zu halten. Wenn Sie eine Taxonomie-zentrierte Seite haben, dann verwenden Sie die Taxonomie das Menü zu erstellen. Es gibt keinen „besten Weg“ Navigation zu tun, nur die beste Art und Weise für eine gegebene Situation.

Wir haben eine ähnliche Funktion bekommen.

Das Anwendungsmenü wird auf der Masterseite aus der Datenbank geladen, weil sichtbaren Menüoptionen auf die Berechtigungen des Benutzers ab.

Ein paar Konventionen und clevere Struktur auf der Datenbank sicherzustellen, dass der Menü Laden Code ist generisch und navigiert automatisch auf den richtigen Bildschirm bei Auswahl einer bestimmten Menüoption. Wir verwenden UIP zu navigieren und ComponentArt für Web-Steuerelemente.

BTW ComponentArt saugt. Dann wieder nehme ich an all Dritten Control-Bibliotheken zu tun.

Effizienter Zugang ist eine Ur-Funktion aus der Sicht des Benutzers. Ein allgemeiner Ansatz ist suggestiv Nachschlagen im Wörterbuch , das paßt gut für große und verschachtelte Menüstrukturen zu. Der Benutzer navigiert durch Klicks oder einmaliges Drücken von Tasten, zusätzlich voranPfeilTasten (rechts) oder gehen Sie zurück (links) mit nach oben / unten wie gewohnt. Ich würde vorschlagen, dass die Menüs auf Anfrage mit Ausnahme des ersten ein und bietet eine Javascript Aktion zu füllen, wann immer ein abschließendes Element ausgewählt ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top