2016-06-14 13 views
0

Ich habe eine Anwendung in ASP MVC5 und während die meisten funktioniert, finde ich ein Problem beim Verweisen auf Javascript-Dateien, im Grunde, wenn die URL direkt an den Controller wie mypage.com/admin/products/create ist , das Skript wird aufgerufen und funktioniert einwandfrei, wenn ich jedoch einen Controller mit zusätzlichen Parametern wie mypage.com/admin/products/edit/1525 anrufe, muss ich '../' zu der JavaScript-Dateiverweis hinzufügen oder es hat gewonnen 't laden sowie jede Bezugnahme auf Bilder oder Pfade innerhalb der Javascript ohne die' ../ 'Ich bekomme eine Reihe von 404s. Ich glaube, ich Setup etwas brauchen in meine Routen, aber nicht sicher, dies ist mein routeconfigRufen Sie Javascript auf, wenn die URL mehr Parameter hat

public static void RegisterRoutes(RouteCollection routes) 
    { 
     var namespaces = new[] {typeof (HomeController).Namespace} ; 
     var AdminNamespaces = new[] {typeof (Areas.Admin.Controllers.HomeController).Namespace}; 

     routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 


     routes.MapRoute("Home", "", new {controller = "Home", action = "Index"}, namespaces); 
     routes.MapRoute("Login", "login", new { controller = "Login", action = "Index" }); 
     routes.MapRoute("Logout", "logout", new {controller = "Login", action = "Logout"}); 

    } 

und dies ist der Bereich Registrierung

public override void RegisterArea(AreaRegistrationContext context) 
    { 
     context.MapRoute(
      "Admin_default", 
      "admin/{controller}/{action}/{id}", 
      new { action = "Index", controller = "Home", id = UrlParameter.Optional } 
     ); 
    } 

nicht sicher, was sonst könnte ich das enthalten wäre nützlich,

ein bestimmtes Script ich Probleme habe, ist der nicedit Texteditor, und ich habe es auf meinem Bündel wie folgt aus:

 bundles.Add(new ScriptBundle("~/scripts/nicedit") 
      //.Include("~/scripts/lodash.js") 
      .Include("~/scripts/nicedit.js") 
      ); 
schließlich

Ich nenne es auf meiner Ansicht (nicht-Layout) cshtml wie folgt aus:

@Scripts.Render("~/Scripts/nicedit") 
+2

Wie fügen Sie Ihre JS-Dateiverweise hinzu? Das ist wahrscheinlich das Problem. Ich bin fast 100% nicht mit Routing verbunden. Auch ich habe das asp-classic-Tag aus der Frage entfernt, das ist nicht verwandt. –

+0

zeigen Sie uns Ihre Bundle-Konfiguration? –

+0

bearbeitet, um Bundle hinzuzufügen und wie es aus Sicht aufgerufen wird – HectorDZJ

Antwort

-1

Blick in JS und CSS Bündelung (erhältlich in .NET seit einiger Zeit).

Beachten Sie, dass es in der Vergangenheit Probleme mit der CSS-Bündelung gegeben hat, die die relativen URLs für Bilder (im CSS) bricht. Wenn das ein Problem wird, sehen Sie sich die CSS-Umschreibungstransformationen an (MVC Bundling and CSS relative URLs)

+0

Dies beantwortet nicht wirklich die Frage, es ist eher ein Kommentar. – mason

Verwandte Themen