将.aspx文件放入另一个文件夹后,ScriptManager.RegisterStartupScript()不起作用

ScriptManager.RegisterStartupScript() is not working after putting .aspx file inside a different folder

本文关键字:ScriptManager RegisterStartupScript 不起作用 文件夹 文件 aspx 另一个      更新时间:2023-09-26

我在一个名为Scripts的文件夹中编写了一个javascript函数。有两个函数在这个javascript文件中工作作为弹出。我使用ScriptManager.RegisterStartupScript()从.cs文件调用这些javascript函数,其工作正常。

ScriptManager.RegisterStartupScript(this.Page, this.GetType(), "disp_confirm", "<script type='text/javascript'>ImgDivPopup()</script>", false);

但是当我把。cs文件放入不同的文件夹后,如View => InProcess => traveler .cs,上面的代码不起作用。

有几个问题可能会导致您现有的问题:

确保正确引用

所有RegisterStartupScript()方法所做的实际上是注册一个特定的脚本,以便在加载所有内容时将其添加到页面(并且经常执行)。当这种情况发生时,您现有的代码将调用ImgDivPopup(),这通常会工作,假设<script>引用与定义的函数存在:

<!-- Ensure you are referencing the appropriate file so you can access the function -->
<script src='<%= ResolveUrl("~/Scripts/your-imgdivpopup-file.js") %>'></script>

这只是一个示例,说明如何使用定义的函数来引用文件,但是如果使用外部文件,则需要这样做。

可能的竞争条件

如果您引用的文件有任何其他依赖项,例如另一个客户端库,那么您可以考虑在调用函数时添加显式延迟,以便有时间赶上:

// Call your function with a 10ms delay
ScriptManager.RegisterStartupScript(Page, GetType(), "disp_confirm", "setTimeout(function(){ ImgDivPopup();},10);", true);

使用您的开发工具(F12)

由于这可能是客户端问题,请考虑在浏览器中使用开发人员工具(F12)。检查Network和Console选项卡,查看是否存在任何错误(如"function ImgDivPopup() is not defined""{your-script-file} could not be found"等)