Alle,generieren Daten auf Anfrage (ASP.NET MVC - HTML)
Ich versuche, Benutzer TAGS in Menü zu generieren dynamisch
Ich habe die folgende
Erstellt eine „Partial Anzeigen "für TAGS-Elemente und platziert es im Hauptmenü (Navigationsleiste)
Dynamisch generierte Tag-Liste mit TAG MODELL
Meine Teilansicht hat den folgenden Code
@{
MVCbootstrap.Views.Tag.TagListGenerator tagList = new MVCbootstrap.Views.Tag.TagListGenerator();
List<MVCbootstrap.Models.TagModel> Tag_List = tagList.Get_Tags_List();
}
<li class="">
<a href="javascript:;">
<span class="title">Tags</span>
<span class=" arrow"></span>
</a>
<span class="icon-thumbnail"><i class="pg-indent"></i></span>
<ul class="sub-menu">
@foreach (MVCbootstrap.Models.TagModel I in Tag_List)
{
<li class="">
<a href="#">@I.Tag_name</a>
</li>
}
</ul>
</li>
Jetzt Performance-weise, ich denke, das ist nicht richtig, wenn es 1000 TAGS dann wird der Code 1000 TAG PUNKTE jedes Mal eine Seite erzeugen ist aktualisiert oder besucht, da sich diese Tags im Navigationsmenü befinden. So , was ich will, ist diese Tags nur dann zu erzeugen, wenn jemand auf „TAGS“ HREF wie unten
<a href="javascript:;">
<span class="title">Tags</span>
<span class=" arrow"></span>
</a>
Um die Leistung I TAGS generieren möchten nur zu verbessern, wenn TAGS oder Stichworte Dropdown Arrow ist
geklicktDie Web-Benutzeroberfläche sieht wie folgt aus mit Daten Dummy Schlagwörter
public class TagListGenerator
{
List<Models.TagModel> Tag_List = new List<Models.TagModel>();
public List<Models.TagModel> Get_Tags_List()
{
//Send Tags List From LINQ.DB
Tag_List.Add(new Models.TagModel() { Tag_id = 1, Tag_name = "Tag 1" });
Tag_List.Add(new Models.TagModel() { Tag_id = 2, Tag_name = "Tag 2" });
Tag_List.Add(new Models.TagModel() { Tag_id = 3, Tag_name = "Tag 3" });
Tag_List.Add(new Models.TagModel() { Tag_id = 4, Tag_name = "Tag 4" });
Tag_List.Add(new Models.TagModel() { Tag_id = 5, Tag_name = "Tag 5" });
return Tag_List;
}
}
Web UI für Schlagwörter Liste Klo ks wie folgt: Wo auf TAGS klicken derzeit Blendet die Liste
Wo das Tag-Modell sehr einfach ist, wie folgend
public class TagModel
{
public Int64 Tag_id { get; set; }
public string Tag_name { get; set; }
}
Prost
BESCHLOSSEN:
Also habe ich in meinem HOME-Controller eine Aktion namens GetTags erstellt, die zurückkehrt ns die Teilansicht
[HttpGet]
public ActionResult GetTags()
{
return PartialView("~/Views/TagNavMenu");
}
Dann habe ich in meiner Hauptansicht
<li class="">
<a href="javascript:;" id="showtags">
<span class="title">Tags</span>
<span class=" arrow"></span>
</a>
<span class="icon-thumbnail"><i class="pg-indent"></i></span>
<ul class="sub-menu" id="divdiv">
</ul>
</li>
dann ich diesen Anruf bin mit einer Teilansicht machen
Arbeiten jetzt
Sie Gebrauch von AJAX hier machen müssen, um zu machen. Erstellen Sie eine Controller-Aktion, die eine Liste von Tags im JSON-Format zurückgibt und diese Aktion über AJAX mit einem Klick auf "TAGS" aufruft. Erstellen Sie anschließend HTML, wenn Sie eine Liste der Tags vom Server erhalten. –
@ChetanRanpariya Vielen Dank für Ihre Antwort, ich habe eine Aktion in HOME Controller namens GetTags erstellt und ich gebe PARTIAL VIEW von dieser Aktion zurück, die TAG_Menu ist. Es scheint nicht zu funktionieren - (siehe den bearbeiteten Beitrag oben) – aliusman
@ Aliusman Ich denke, du musst untersuchen, was in deinem Browser passiert. Gehen Sie zu den Entwicklertools und untersuchen Sie JS-Code-Fehler und Netzwerkaktivitäten. Überprüfen Sie, ob der AJAX-Aufruf erfolgreich das Ergebnis der Teilansicht ohne Fehler liefert und dass keine JS-Fehler vorliegen. –