Javascript 控制器收到每个页面请求2个请求
我已经在我的dotnet核心应用程序中修改了映射路径,每个请求都会发送到一个控制器,因此我们构建的每个页面不需要很多控制器或操作结果 在Page Controller构建一个包含CSS和JavaScript位置列表的对象时,该对象将被传递到Page viewJavascript 控制器收到每个页面请求2个请求,javascript,c#,asp.net-mvc,asp.net-core,routes,Javascript,C#,Asp.net Mvc,Asp.net Core,Routes,我已经在我的dotnet核心应用程序中修改了映射路径,每个请求都会发送到一个控制器,因此我们构建的每个页面不需要很多控制器或操作结果 在Page Controller构建一个包含CSS和JavaScript位置列表的对象时,该对象将被传递到Page view public IActionResult Killme() { var PageInfo = GetPage_Data(); ViewBag.PageInfo = t; return View("Pages"); } 我尝试
public IActionResult Killme()
{
var PageInfo = GetPage_Data();
ViewBag.PageInfo = t;
return View("Pages");
}
我尝试将这些信息作为模型或视图包传递给页面视图。
在页面视图中,我尝试基于如下模型动态构建JavaScript和CSS
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
@{
RootObject PageInfo = ViewBag.PageInfo;
foreach (var JavaScript in PageInfo.js)
{
var JSsrc = JavaScript.src;
<script type="text/javascript" src="@JSsrc ">
</script>
}
<script type="text/javascript" src=""></script>
</head>
<body>
</body>
</html>
@{
RootObject PageInfo=ViewBag.PageInfo;
foreach(PageInfo.js中的var JavaScript)
{
var JSsrc=JavaScript.src;
}
现在的问题是,当我构建JavaScript时,当我注释
<script type="text/javascript" src="@JSsrc ">
</script>
页面控制器将被调用一次,
任何关于发生这种情况的原因和我做错了什么的帮助都将不胜感激此行为的原因是staticFileHandler未配置或无法找到您的Javascript文件并将请求进一步向下传递。MVC处理程序捕获所有请求(因为您的路由)并因此再次返回同一页 首先检查启动类是否在mvcHandler之前使用staticFileHandler,如下所示:
public class Startup
{
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
app.UseStaticFiles();
..
app.UseMvc();
}
}
其次,确保您的Javascript放在wwwroot中,并使用正确的路径。因此,像wwwroot/js/mysite.js这样的文件应该有如下脚本标记:
<script src="/js/mysite.js"></script>
这些改进应该可以解决您的问题。检查
PageInfo.js
中是否有重复的js。例如,从GetPage\u Data()中;
也删除
在页面上是多余的。Pageinfo.js是js文件及其顺序和其他信息的列表,每个页面的Pageinfo.js列表中有3个项目,我删除了第二个js,但没有任何区别。我有静态文件,但因为这个应用程序是POC,我没有JavaScript文件还没有,但是带来一个已经完成了工作,谢谢
<script src="/js/mysite.js"></script>