MVC3 und URLs (mit Gebieten, habe ein Problem mit Aufbau einer <a> - tag)

Ich habe ein Problem mit Flächen und die Generierung der links von Ihnen. Hier ist die grobe Struktur des Codes Im arbeiten mit:

Hause

   Bereich1

     Bereich 1 Inhalt

   Area2

     Bereich 2 Inhalt

   Area3

     Bereich 3 Inhalt

In meiner _layout.cshtml-Datei Generiere ich ein Menü (das ist vollständig tabellengesteuert):

foreach (MainMenu mm in parentMenus)
{
    List<SubMenu> theseChildren = childMenus.Where(o => o.MainMenuId == mm.MainMenuId).OrderBy(p => p.Ordering).ToList();

    result.Append(String.Format(@"<h3><a href='#'>{0}</a></h3>", mm.Name));
    result.Append(String.Format(@"<div>"));
    result.Append(String.Format(@"<p>"));
    foreach(SubMenu sm in theseChildren){

        //Issue is here:

        result.Append(String.Format(@"<a href='{0}/{1}/{2}'>{3}</a> <br />", sm.AreaName == null ? String.Empty : sm.AreaName, sm.ControllerName, sm.ActionName, sm.Name));
    }
    result.Append(String.Format(@"</p>"));
    result.Append(String.Format(@"</div>"));
}

Es ist gebaut, das war, da es generiert für ein Akkordeon (jQuery).

So, das Problem ist in der foreach-Schleife. Wenn der code ausgeführt wird in der "Home" - Bereich, es ist in Ordnung, aber wenn es läuft außerhalb der home-Bereich, erzeugt es ungerade Ergebnisse.

So, ich habe zum Beispiel einen Datensatz in der Datenbank aufrufen OPS. Es sollte ein link zu OPS/OPS/INDEX (Bereich = OPS, Controller = OPS, Action = INDEX). Im Haus "Raum", es ist in Ordnung, aber wenn es in einem Gebiet, kommt es heraus "http://localhost:17416/Home/OPS/OPS/INDEX"

Jede Hilfe, die zur Verfügung gestellt, wäre toll!

Vielen Dank im Voraus jeder.

InformationsquelleAutor SlackerCoder | 2011-08-08
Schreibe einen Kommentar