Frage

Ich verwende T4MVC in unserem ASP.NET MVC-Projekt.

Ich habe eine Anweisung wie folgt aus meiner Sicht:

<% Html.RenderPartial(MVC.SomeController.Views.PartialViewName); %>

Das war zuvor wie folgt aus:

<% Html.RenderPartial("../SomeController/PartialViewName"); %>

Bisher war es funktioniert gut, aber nachdem ich die Teilansicht angegeben T4MVC verwenden, seine nicht in der Lage, dass die Teilansicht zu finden.

Seine Nur versuchen, es in der unten angegebenen Wege zu finden, die das Standardverhalten ist.

~/Views/SomeController
~/Views/Shared

Gibt es eine Möglichkeit, eine Teilansicht zu spezifizieren, die in einem anderen Regler Ansichten ist Ordner durch T4MVC? oder was auch immer ich tue, ist es richtig? Was bin ich?

Danke.

War es hilfreich?

Lösung

Ein Ansatz - Sie können Ihre Viewengine erweitern und es bewusst über spezifische Teilansicht Orten machen. Ich selbst setze alle Teilansichten in Views/Home/Partial (wo Home => Controller Namen) Ordner.

 public class ViewEngine : WebFormViewEngine
    {
        public ViewEngine()
        {
            PartialViewLocationFormats = PartialViewLocationFormats
                .Union(new[]
                       {
                           "~/Views/{1}/Partial/{0}.ascx",
                           "~/Views/Shared/Partial/{0}.ascx",
                       }).ToArray();
        }
    }

Aber es klingt, dass Sie Ihre App falsch strukturieren. Controller spezifische Teilansichten sollten nicht Teilansichten machen, die mit einem anderen Controller verbunden sind. Setzen Sie diese Teilansichten in freigegebenen Ordner.

Andere Tipps

Wie Sie vielleicht schon wissen, ich habe T4MVC veränderte den vollständigen Pfad zu der Ansicht zu erzeugen, statt des kurzen Namen. So der ursprüngliche Code, den Sie oben haben sollte einfach funktionieren. Lassen Sie uns wissen, wenn Sie auf Probleme stoßen.

Dies ist in Build 2.6.03. Download-Seite .

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