2009-06-10 5 views
0

für die Globalisierung Grund muss ich der Lage sein, dies zu tun:Wie verwende ich die Ansicht von einem anderen Controller?

http://mysite/home 
http://mysite/Accueil 

was habe ich versucht, ist die Heimat Kontrolle in meinem Home-Klasse erbt:

Public Class AccueilController 
    Inherits HomeController 

End Class 

Problem ist, es versucht, in die gehen Accueil Ordner und suchen sie nach index.aspx dort

The view 'Index' or its master could not be found. The following locations were searched: 
~/Views/Accueil/Index.aspx 
~/Views/Accueil/Index.ascx 
~/Views/Shared/Index.aspx 
~/Views/Shared/Index.ascx 

ich möchte es verwenden, um, so habe ich nicht Code

duplizieren
~/Views/Home/Index.aspx 

was wäre der einfachste Weg das zu tun?

Antwort

2

Sie sagen, dass Sie für die Globalisierung Gründen müssen beide Urls haben machen die gleiche Ansicht. In diesem Fall würde ich vorschlagen, dass Sie die Routing-Engine verwenden und Accueil zu home zuordnen.

routes.MapRoute(
    "accueil", 
    "Accueil/{action}", 
    new 
    { 
     controller = "Home", 
     action = "Index" 
    } 
); 
0

Die Fehlermeldung enthält Ihre Antwort. Die Ansichts-Engine führt eine progressive Suche nach einer übereinstimmenden Ansicht durch, die sich durch eine Gruppe konfigurierter Ordner bewegt. Wenn Sie eine gemeinsame Indexansicht wünschen, legen Sie die Index.aspx-Datei in ~/Views/Shared/ab, und das sollte den Zweck erfüllen.

Wenn Sie flexiblere Ansichtsstandorte benötigen, können Sie einen benutzerdefinierten ViewLocator implementieren.

http://blogs.teamb.com/craigstuntz/2008/07/31/37827/

+0

Problem ist, würde alles dort gesetzt werden, wenn ich das tue, alles von jedem Controller dies ein großes nein nein – Fredou

+0

Warum alles von jedem Controller? Wenn Sie nur eine gemeinsam genutzte Indexseite benötigen, dann teilen Sie sie mit geteilt. Alle anderen Ansichten für andere Aktionen auf Ihren Controllern können an ihrem normalen Standort bleiben. – jrista

Verwandte Themen