2 Stimmen

Wie ändert man den Standard-Routenpunkt statischer HTML-Dateien in asp.net mvc

Wie können wir die Standarddatei auf etwas wie index.html anstelle der Standardaktion Startseite/Index

0 Stimmen

Ich möchte die statische Seite als Landing Page anstelle einer dynamischen Seite verwenden

1voto

David Punkte 14875

In IIS das Standarddokument index.html an den Anfang der Liste setzen?

Oder Sie könnten eine IgnoreRoute in Ihre global.asax einfügen

public static void RegisterRoutes(RouteCollection routes)
{
   routes.RouteExistingFiles = true;
   routes.IgnoreRoute("{file}.html");
   ...

0 Stimmen

Ich denke, das ist das Gegenteil von dem, was er will. Er will die index.html als seine Homepage verwenden und sie nicht ignorieren.

1voto

Ich habe festgestellt, dass unter IIS 6 zumindest die Standard-Dokumentenabholung beeinträchtigt wurde, wenn Sie einen Platzhalter-Catchall verwendeten, um die meisten Anfragen an das MVC weiterzuleiten.

Meine Lösung (in meinem Fall nur für den Root-Pfad) war wie folgt: (in global.asax)

if (Request.Path == "" || Request.Path == "/") { Response.Redirect(Request.Path + "index.htm",true); zurück; }

Dadurch wurde die Anfrage aufgefangen und an die richtige Stelle weitergeleitet. Das Umschreiben des Pfades mit Context.RewritePath(Request.Path + "index.htm"); anstelle der Umleitung scheint ebenfalls zu funktionieren. Eine weitere Überarbeitung würde wahrscheinlich darin bestehen, zu prüfen, ob das letzte Zeichen des Pfades '/' ist, und wenn ja, zu prüfen, ob die entsprechende Datei (thatpath/index.htm) existiert, und sie umzuleiten, wenn dies der Fall ist... dies würde es MVS ermöglichen, weiter zu arbeiten und gleichzeitig eine Logik bereitzustellen, so dass alle Ordner, die existieren und ein Standarddokument wie dieses haben, damit arbeiten.

0voto

Tomas Aschan Punkte 55585

Sie können die Standard-Controller-Aktion durch Hinzufügen oder Ändern einer Route im Global.asax.cs Datei Ihres Projekts.

In der Vorlage ist Folgendes enthalten:

routes.MapRoute(
    "Default",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = null });

Wenn Sie standardmäßig auf eine andere Controller-Aktion verweisen möchten, ändern Sie einfach die Werte im anonymen Typ in der vierten Zeile des obigen Codes.

0voto

Emad Punkte 4010

Ich fügte hinzu

        routes.IgnoreRoute("");

zu meiner Routenkonfiguration. Dabei wird der Stammordner ignoriert, und wenn Sie eine index.html-Datei in Ihrem Stammordner haben, wird diese übernommen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X