Sie meine Basismodul verwenden könnte. Damit können Sie Ihre Web-App in lose gekoppelte Einheiten mit zugehörigen Elementen im selben Ordner organisieren: Module, Ansichten, statische Ressourcen. Dies wird erreicht, indem der Namespace des Moduls (ohne den Projektnamen) als 1) ModulPfad, 2) als Suchort für Sichten und 3) als zulässige Stelle für statischen Inhalt registriert wird.
Als solche gehen Sie (zurück) zu URLs, die der Ordnerstruktur Ihres Projekts zugeordnet sind. Elemente, an denen Sie wahrscheinlich gemeinsam arbeiten und zusammen löschen, leben zusammen. Konstruieren von Links zu Dingen wird stark vereinfacht. Also für Ihre Umleitung, würden Sie eine Ordnerstruktur haben
here
|-module.cs
|-there
|-module.cs
und in Ihrem „hier“ Modul, das Sie gerade return Response.AsRedirect("there/");
Damit dies funktioniert, Module aus der folgenden Basismodul erben sollte, und nicht den Standard-Namespace ändern Ihrer Module. Es wird dem Ordner zugeordnet.
using Nancy;
using Nancy.Conventions;
using System;
using System.Text.RegularExpressions;
namespace HaciendaTestClient
{
// http://stackoverflow.com/questions/2287636/pass-current-object-type-into-base-constructor-call
public abstract class BaseModule<T> : NancyModule, IConvention
{
// the goal is to provide the folder path from the app root as the module path, to enable relative links to static content.
public BaseModule() : base(typeof(T).Namespace.Substring(typeof(T).Namespace.IndexOf('.')).Replace('.', '/'))
{
}
public void Initialise(NancyConventions conventions)
{
// This is where we register the top level directory containing the module as a root for static content.
var tlf = Regex.Match(typeof(T).Namespace, "(?<=\\.)[^\\.]*", RegexOptions.Singleline).Value;
var conv = StaticContentConventionBuilder.AddDirectory(tlf);
conventions.StaticContentsConventions.Add(conv);
}
public Tuple<bool, string> Validate(NancyConventions conventions)
{
return new Tuple<bool, string>(true, "no problem joe");
}
}
}
Hier ist ein kleiner Screenshot meines Lösungs-Explorers, um Sie zu interessieren. Da alles mit relativen Links aufgerufen wird, kann alles "_" genannt werden. Der Ort wird zum Bezeichner. Und es ist nicht spröde. Ordner können verschoben, umbenannt und verschachtelt werden. Achte nur darauf, dass die Namensräume übereinstimmen! Nancy rockt.
![enter image description here](https://i.stack.imgur.com/hcyAi.png)
'Rückkehr Response.AsRedirect ("/ test/es");' – Phill
es möglich ist, es zu tun, ohne den Modul Pfad angeben? ("/ test") –
Nein, das ist nicht möglich. – Phill