【发布时间】:2016-10-15 15:33:37
【问题描述】:
我在 ASP MVC5 中有一个应用程序,虽然大多数工作正常,但在引用 javascript 文件时遇到问题,基本上如果 URL 直接指向 mypage.com/admin/products/create 等控制器,则脚本会被调用并正常工作很好,但是,当调用带有 mypage.com/admin/products/edit/1525 之类的附加参数的控制器时,我必须将“../”添加到 javascript 文件引用中,否则它不会加载以及任何在没有'../'的情况下引用javascript中的图像或路径我得到一堆404。 我相信我需要在我的路线中设置一些东西,但不确定,这是我的路线配置
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")
【问题讨论】:
-
你是如何添加你的 JS 文件引用的?这很可能是问题所在。我几乎 100% 与路由无关。我也从问题中删除了 asp-classic 标签,这不相关。
-
向我们展示您的捆绑配置?
-
编辑添加包以及如何从视图中调用它
标签: javascript c# asp.net-mvc