Frage

Ich habe gerade angefangen zu benutzen Attributterouting Mit meiner ASP.NET MVC3 -Anwendung. Ich habe überhaupt mit -no -Controllern angefangen. (Neue leere MVC3 -Anwendung)

Ich habe dann einen Bereich gemacht. (genannt: Documentation)

Ich habe dann einen Controller hinzugefügt (genannt: DocumentationController)

Ich habe das dann gemacht ..

[RouteArea("Documentation")]
public class DocumentationController : Controller
{
    [GET("Index")]
    public ActionResult Index()
    {
        return View();
    }
}

Und die folgende Route funktioniert: /documentation/index

Aber wie kann ich diese beiden Routen machen, arbeiten?

1 - / <- (Standardroute / keine spezifische Route angegeben) 2- /documentation <- NO 'INDEX' SUBROUTE-Abschnitt hinzugefügt.

Kann das mit geschehen? Attributterouting?

AKTUALISIEREN:

Ich weiß, wie man das mit der Standard -ASP.NET -MVC3 -Struktur usw. macht. Ich versuche dies stattdessen durch Attributerouting herauszufinden.

War es hilfreich?

Lösung

Ich nehme an, Sie möchten, dass die "/" und "//dokumentation" auf documentationController.index, ja? Wenn ja, tun Sie Folgendes:

[RouteArea("Documentation")]
public class DocumentationController : Controller
{
    [GET("Index", Order = 1)] // will handle "/documentation/index"
    [GET("")] // will handle "/documentation"
    [GET("", IsAbsoluteUrl = true)] // will handle "/"
    public ActionResult Index()
    {
        return View();
    }
}

Ein bisschen Erklärung:

  • Get ("Index") hat Ordnung = 1, um sie als primäre Route für die Aktion zu markieren. Aufgrund der Funktionsweise der Reflexion gibt es keine Möglichkeit, die Reihenfolge der Attribute für eine Aktion zu bestimmen, ohne die Eigenschaft Order zu verwenden. Siehe hier
  • Sie können mehrere Get Routen zu einer einzigen Aktion zugeordnet haben. Siehe hier
  • Mit der Eigenschaft isabsoluteurl können Sie die von den Routearea- und RoutePrefix -Attributen hinzugefügten URL -Präfixen überschreiben. Diese letzte Route stimmt also mit den Root -Anfragen überein. Siehe hier

Hoffe das hilft. Wenn meine anfängliche Annahme dessen, was Sie tun möchten, falsch ist, kommentieren Sie bitte.

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