当前位置: 首页 > 面试题库 >

asp.net ScriptManager PageMethods未定义

杜祺
2023-03-14
问题内容

我想从JS调用静态服务器端方法,所以我决定在我的网站上使用ScriptManager控件。所以我有一个具有这样结构的母版页:

<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="TopLevelMasterPage.Master.cs"
    Inherits="Likedrive.MasterPages.TopLevelMasterPage" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:fb="http://ogp.me/ns/fb#">

<head runat="server">
    <title></title>
        <script type="text/javascript">
            function getGiftFileUrl() {
                function OnSuccess(response) {
                    alert(response);
                }
                function OnError(error) {
                    alert(error);
                }

                PageMethods.GetGiftFileUrl("hero", 1024, 768, OnSuccess, OnError);
            }

            getGiftFileUrl();

        </script>
    </asp:ContentPlaceHolder>
</head>
<body>
    <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManagerMain"
            runat="server"
            EnablePageMethods="true" 
            ScriptMode="Release" 
            LoadScriptsBeforeUI="true">
    </asp:ScriptManager>
    <asp:ContentPlaceHolder ID="MainContent" runat="server"> 
    </asp:ContentPlaceHolder>
    </form>
</body>
</html>

但是,当页面正在加载时,我有一个JS异常-PageMethods未定义。我以为该对象将被隐式创建,因此我可以在我的JavaScript中使用它。


问题答案:

我已经意识到为什么未找到PageMethod对象的原因,因为ScriptManager组件位于使用PageMethod的脚本的旁边,因此在渲染页面并执行脚本时,目前没有PageMethod。所以当页面上的所有脚本都准备好使用时,我需要在按钮单击或窗口加载事件上调用getGiftFileUrl()。



 类似资料:
  • 问题内容: 注意:根据 ECMAScript5.1,第15.1.1.3节,window.undefined是只读的。 现代浏览器正确地实现了这一点。 例如:Safari 5.1,Firefox 7,Chrome 20等。 Undefined仍可在以下位置更改:Chrome 14,… 原来,问题的原因是 如果“对象”中没有属性“ x”,则返回false。 我通过在两个Facebook函数中用规则相等

  • 问题内容: 我正在使用PHP版本5.3并尝试在我的代码中使用,但是出现错误: 我仍然可以连接到数据库。为什么不可用? 我正在使用PHP版本5.3。 问题答案: 更新 中提到的评论,一直以来5.5弃用: 自PHP 5.5起不推荐使用mysql扩展。应该改用mysqli或PDO扩展名。否决已在mysql_deprecation中确定,可以在此找到对该决定背后原因的讨论。 并 在PHP 7中删除 。 是

  • 问题内容: 我有一个简单的jquery click事件 以及在site.master中定义的jquery引用 我检查了脚本是否已正确解析,可以在Firebug中查看标记并直接查看脚本,因此必须找到我。但是,我仍然得到: $未定义 而且没有一个jQuery的作品。我还尝试了$(document).ready和jQuery等的各种变体。 这是.net 3.5上的MVC 2应用程序,我确定我真的很密集,

  • 问题内容: 我收到此错误消息, 这是我的标题。 以下是我的JavaScript代码 以下是HTML 我想在输入标签上显示日期选择器。 我正在使用Bootstrap V3.1。 问题答案: 在使用$或jQuery的脚本之前 添加jQuery库 , 以便可以在脚本中标识$。

  • null 下面是我的代码摘要: 和我的表格

  • 问题内容: 我一直看到说使用=>或.bind(this)的答案,但这些解决方案均无效。 解: 问题答案: 当你 与ES2015类语法,你需要你的动作处理程序绑定到你的类的上下文。 试试这个: 通常,最好不要在其中使用箭头函数或方法,因为它会在每次调用时生成该函数的新副本。将函数声明移到。 我个人更喜欢在这种情况下使用箭头函数作为类属性 它不是ES2015规范的一部分,但babel stage-0预

  • 问题内容: 我正在尝试遵循有关NodeJ的教程。我不认为我会错过任何事情,但是每当我调用时,我得到的唯一值就是不确定的。根据我的研究,默认值应为“开发”。如何动态设置此值以及最初在哪里设置? 问题答案: process.env是对您的环境的引用,因此您必须在此处设置变量。 在Windows中设置环境变量: 在OS X或Linux上:

  • 问题内容: 我正在尝试使用nodejs / mongoose从mongodb获取结果。 错误: 问题答案: 请注意,这是MongoDB的一部分,在您的情况下不可用。您应该使用,而不是和MongoDB的驱动器(如猫鼬ORM,你正在使用)将采取之间照顾类型转换和幕后。