2016-03-23 8 views
0

Ich habe eine asp.net mvc 5 Anwendung. Diese Anwendung verwendet asp.net mvc 5-Attribut-Routing.ASP MVC Routing-URL-Übersetzung in eine Sub-Domain bricht die gesamte Website. Brauchen Sie Vorschläge, wie man das macht

In allen Routing ich eine Top-Level-Strecke Präfix wie „/ myapp/org_code/restoftheroutes/ zum Beispiel:. https://myapp.com/apple/register/112 https://myapp.com/google/register/112

Hier ist der org_code ist Routenparameter

Jetzt als pro Client beantrage ich verschiedene org_code in Sub-Domain

Wie zu setzen haben. https://myapp.com/apple/register/112 wird übersetzen: https://apple.myapple.com/register/112

In dem dns i https://apple.myapple.com zu einem https://myapp.com/apple aber tun, dass meine statischen Inhalte wie CSS und Bilder does't Last als die Wurzel der App hingewiesen haben wird https://myapp.com/apple statt https://myapp.com

Bitte geben Sie mir einen Vorschlag, wie dieses Problem zu beheben .

Antwort

1

Leider unterstützt MVC 5 Attribute Routing keine Subdomains. Das AttributeRouting Nuget-Paket, auf dem es basiert, funktioniert jedoch. Glücklicherweise können Sie beide gleichzeitig in Ihrem Projekt verwenden, obwohl nur einer oder der andere pro Controller.

Die Art und Weise, wie das AttributeRouting Nuget Subdomains behandelt, erfolgt über Areas. Daher müssen Sie in Ihrem Projekt für jede der Subdomains, die Sie zuordnen möchten, einen Bereich erstellen. Das mag problematisch erscheinen, aber Sie können immer noch einen Großteil des Codes zwischen den Bereichen teilen, einschließlich der Ansichten, da Razor immer auf den Stamm Views Ordner zurückfällt, um nach einer Ansicht zu suchen. Das einzige, was Sie für den Bereich erstellen müssen, sind ein oder mehrere Controller, aber diese Controller können von einem gemeinsamen Basis-Controller erben, so dass Sie den tatsächlichen Controller-Code teilen können. Weitere Informationen zum Routing von Subdomänen über AttributeRouting Nuget finden Sie unter documentation.

Wenn Sie nicht auf AttributeRouting Nuget Route gehen möchten, ist Ihre einzige andere Option Standard-MVC-Routing. Sie richten im Wesentlichen nur eine benutzerdefinierte Routenbeschränkung ein, die Ihre Subdomain in das Routenwertwörterbuch einfügt. Sie können dies verwenden, um Entscheidungen in Ihren Aktionen entsprechend zu treffen. Suchen Sie einfach nach "asp.net mvc subdomain routing"; Es gibt viele verschiedene Beispiele.