当URL有更多参数时调用javascript

时间:2016-06-14 18:45:53

标签: javascript c# asp.net-mvc

我在ASP MVC5中有一个应用程序虽然大多数工作正常我在引用javascript文件时遇到问题,基本上如果URL直接到控制器,如mypage.com/admin/products/create,脚本会被调用并工作但是,当用mypage.com/admin/products/edit/1525等附加参数调用控制器时,我必须添加' ../'对于javascript文件引用或者它不会加载以及对javascript中的图像或路径的任何引用,而不包含' ../'我得到了一堆404。 我相信我需要在我的路线中设置一些东西,但不确定,这是我的routeconfig

    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"});

    }

这是区域注册

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

不确定我还能包含哪些内容

我遇到问题的一个特定脚本是nicedit文本编辑器,我在我的包上有这样的:

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

最后我在我的视图(不是布局)cshtml上调用它,就像这样:

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

1 个答案:

答案 0 :(得分:-1)

了解JS和CSS捆绑(现在可以在.NET中使用)。

请注意,过去存在CSS捆绑破坏图像相对URL(在CSS中)的问题。如果这成为一个问题,请查看CSS重写转换(MVC Bundling and CSS relative URLs