2 Stimmen

MVC 3 dynamisches Routing für gehostete Website

Ich arbeite an einer MVC 3-Website, die von GoDaddy gehostet wird, und ich brauche, um dynamische Variablen in der URL zu speichern. Etwas wie:

http://www.example.com/{Cat}/{List}/{Item}/{Action} oder
http://{Cat}.example.com/{List}/{Item}/{Action}

Letzteres wäre das Beste.

Die Website ermöglicht es den Benutzern, benutzerdefinierte Listen, Listenkategorien und Listenelemente zu erstellen. Eine Listenkategorie könnte etwas sein wie Sports o News könnte eine Liste sein NBA Teams o Politics und ein Listenelement würde lauten Lakers o Pres. Obama . Der Nutzer kann eine beliebige der 3 Varianten erstellen (nur keine Duplikate).

Mein Ziel ist es, dass die URL etwa so aussieht http://sports.example.com/nba/lakers und lassen Sie den Benutzer weiterleiten zu Controller = "Items", Action = "Details" mit Parametern Cat = "sports", List = "nba", Item = "lakers" und wenn der Nutzer eine Action (wie Bearbeiten, Löschen, usw.), ersetzt es Details .

Ich bin nicht super vertraut mit IIS (genauer gesagt IIS über GoDaddy), so IDK, wenn die Subdomaining funktionieren würde (aber das ist das ultimative Ziel) und wenn es möglich ist, würde ich gerne wissen, was ich tun müsste (d.h. selbst hosten + Schritte).

Danke

2voto

Nickz Punkte 1880

Dieser Abschnitt ist eine Domäne http://sports.example.com/ Wenn Sie eine physische Adresse wie z.B. 203.10.01.1 verwenden möchten, müssen Sie eine Subdomain bei GoDaddy registrieren. ASP.NET MVC verwaltet den ... nba/lakers-Bereich. Ihre Domain wird also sein http://sportworldwide.com/ mit Subdomains wie http://nba.sportworldwide.com/lakers . Wenn Sie nur MVC 3 verwenden möchten, versuchen Sie etwas wie

sportworldwide.com/sport/nba/lakers.

 routes.MapRoute("DefaultSport", "sport/{action}/{id}", 
                    new { controller = "Sport",  action = "", id= "" });

EDITAR:

Zur Leistung von Wildcard-DNS-Datensätzen usw. kann ich nicht allzu viel sagen. Das einzige Problem, das ich sehe, ist, dass Sie einen benutzerdefinierten Route-Handler schreiben müssen. Dann müssen Sie den Subdomain-Teil der Url, z.B. sport, erhalten und die Aktion oder den id-Wert ändern, um Ihre Subdomain-Urls zu behandeln. Hier ist ein Beispiel für das Ändern der Route durch einen Routehandler: asp.net MvcHandler.ProcessRequest wird nie aufgerufen

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