Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 控制器收到每个页面请求2个请求_Javascript_C#_Asp.net Mvc_Asp.net Core_Routes - Fatal编程技术网

Javascript 控制器收到每个页面请求2个请求

Javascript 控制器收到每个页面请求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"); } 我尝试

我已经在我的dotnet核心应用程序中修改了映射路径,每个请求都会发送到一个控制器,因此我们构建的每个页面不需要很多控制器或操作结果

在Page Controller构建一个包含CSS和JavaScript位置列表的对象时,该对象将被传递到Page view

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>