C# 名为respond的scriptreference不再工作

C# 名为respond的scriptreference不再工作,c#,asp.net,scriptmanager,C#,Asp.net,Scriptmanager,使用:Visual Studio Express 2013 for Web编写.NET 4.5.1网站 项目最初是基于默认的“创建新网站”模板构建的,因此相关部分是由IDE添加到我的项目中的,尚未编辑 这是一个长达数周的项目,今天我开始收到一个与创建时添加的“罐装”项目有关的意外错误。到目前为止,它一直工作正常 错误消息是: Server Error in '/' Application. 'respond' is not a valid script name. The name mu

使用:Visual Studio Express 2013 for Web编写.NET 4.5.1网站

项目最初是基于默认的“创建新网站”模板构建的,因此相关部分是由IDE添加到我的项目中的,尚未编辑

这是一个长达数周的项目,今天我开始收到一个与创建时添加的“罐装”项目有关的意外错误。到目前为止,它一直工作正常

错误消息是:

Server Error in '/' Application.  

'respond' is not a valid script name.  The name must end in '.js'.
我已调试该文件,使其与我的site.master文件中的此行直接相关:

<asp:ScriptReference Name="respond" />
唯一成功的故障排除是对其进行注释,但这打破了另一个关键功能:现在访问我的链接需要.ASPX扩展名,就像以前一样,我可以访问我的链接,而无需在文件上指定扩展名。。。这是通过ide创建项目的默认方式,因此有了此修复程序,如果不编辑每个包含和扩展的链接,我的所有链接都无法工作不理想

我尝试使用包管理器进行更新,但没有成功。我还验证了respond.js文件是否存在于我的scripts文件夹中,其他文件(如bootstrap)也是如此

我在这里搜索了很长一段时间,在谷歌上搜索了很长一段时间,但是有太多不相关的结果,其中包含scriptmanager的摘录,结果是无穷无尽的

我不确定是否需要对此进行更正,或者是否需要其他文件。重建我的网站没有任何效果,我已经删除了每一篇我读到的帖子中的“临时”文件,这些帖子说它可能适用于不同但类似的问题


此错误的纠正措施是什么?

在Site.Master文件中找到行:

<asp:ScriptReference Name="respond"/>

并修改为:

<asp:ScriptReference Name="respond" Assembly="System.Web.Extensions" />

我自己也遇到了同样的问题,并通过执行以下操作修复了它

将以下代码添加到BundleConfig类的RegisterBundles方法中:

ScriptManager.ScriptResourceMapping.AddDefinition(
                "respond",
                new ScriptResourceDefinition
                {
                    Path = "~/Scripts/respond.min.js",
                    DebugPath = "~/Scripts/respond.js",
                });
解决方案:
  • 在生产服务器上编译项目,而不是在开发机器上预编译

  • 如果使用VS一键式发布工具,请在“设置”下确保未选中“发布期间预编译”


我也遇到了同样的问题,但上述问题都不起作用。。。 验证您的global.asax.cs,在我的案例中,Routeconfig和BundleConfig行丢失,添加它们后,它再次工作

    void Application_Start(object sender, EventArgs e)
    {
        // Code that runs on application startup
        RouteConfig.RegisterRoutes(RouteTable.Routes);
        BundleConfig.RegisterBundles(BundleTable.Bundles);
    }

看来你的bundleConfig没有启动

首先尝试重建和清理项目。之后,尝试查看Global.asax.cs文件,看看是否有问题


或者尝试获取默认的Global.asax.cs文件并将其复制到其中。

当我将从Visual Studio(我的情况是2015)生成的模板asp.net web表单应用程序部署到Azure应用程序服务时,出现了此问题

对我来说,上面给出的任何解决方案都不起作用。我得到的错误与这个问题中描述的完全一样

然后我偶然看到了下面的一篇文章,它展示了添加jquery捆绑包的示例。

在这个示例之后,我删除了RegisterBundles方法中AddDefinition的模板代码。然后我添加了以下内容,重建并上传了应用程序dll

            bundles.Add(new ScriptBundle("~/bundles/respond").Include(
                    "~/Scripts/respond.min.js"));
然后我将以下内容添加到Asp:site.master中的占位符

        <%: Scripts.Render("~/bundles/respond") %>


最后,我在site.master中删除了ScriptManager中的respond。我尝试了上述方法,但没有成功。
        <%: Scripts.Render("~/bundles/respond") %>
然后,我尝试了另一个帖子

<add name="BundleModule" type="System.Web.Optimization.BundleModule" />

请注意:本页未包含我的部分文字。即使在我编辑它时,它也会显示我的内容,但由于某些原因,查看它会隐藏它。它应该是这样的:这个引用包含在我的主文件的一节中:感谢您的回复,这只会产生与之前相同的消息:“respond”不是有效的脚本名称。名称必须以“.js”结尾。”添加.js的效果与原始帖子中的效果相同。如果它在开发环境中工作,但在生产环境中(另一台机器)尝试强制复制引用,在BIN目录下的Project->Reference->Copy Local:True中,除了添加由另一个post指示的@samas的引用之外,您可以共享关于您使用的post的信息吗?看见