javascript - 从 Javascript 调用服务器端方法,但在将 EnablePageMethods 设置为 True 时出现错误

标签 javascript asp.net ajax vb.net asp.net-2.0

我目前正在向我们的 Web 应用程序添加键盘快捷键(通过 JavaScript)。

到目前为止,它主要包括触发用户界面中已公开的按钮的单击事件。

现在,我想添加另一个重定向到另一个页面的页面。 新页面 URL 需要根据源页面查询字符串中的元素生成。 基本上,我的查询字符串中有一个日期,并且我想生成第二天的新 URL。

我觉得在服务器端使用 DateTime 方法然后使用 Response.Redirect 比简单地使用 JavaScript 更容易。

我尝试使用装饰一个方法,然后从 Javascript 调用它。 但是,为了使 WebMethods 正常工作,我需要在 ScriptManager 上将 EnablePageMethods 启用为 true,当我这样做时,我会收到这样的错误。 ScriptManager 当前位于母版页中,因此它的功能也会自动继承到所有内容页。

它基本上看起来像这样:

        <asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="True" EnablePageMethods="True"></asp:ScriptManager> 

当我添加 EnablePageMethods 属性,然后运行应用程序时,出现以下 ASP.Net 错误:

配置错误 描述:处理服务此请求所需的配置文件期间发生错误。请查看下面的具体错误详细信息并适当修改您的配置文件。

Parser Error Message: Required attribute 'name' not found.

Source Error: 

<jsonSerialization maxJsonLength="500">
<converters>
<add type="Microsoft.Web.Script.Serialization.Converters.DataSetConverter"/>
<add type="Microsoft.Web.Script.Serialization.Converters.DataRowConverter"/>
<add type="Microsoft.Web.Script.Serialization.Converters.DataTableConverter"/>

我不确定需要做什么来解决此错误,因此我需要找到一种方法来解决此错误,或者找到一种解决方法来执行我的服务器端方法而不依赖 EnablePageMethods。 我正在考虑向网页添加一个不可见的按钮并模拟单击它来执行我的服务器端方法,但这看起来是一个相对不干净的解决方法。

有人可以帮忙/指点一下吗? 我在 NET 2.0 中的 VB 2005 中使用 ASP.Net。

提前致谢。

最佳答案

您需要为这些转换器提供名称,因为这是 <add /> 上的必需属性。 ,例如;

<add type="Microsoft.Web.Script.Serialization.Converters.DataSetConverter"
     name="DataSetConverter" />
<add type="Microsoft.Web.Script.Serialization.Converters.DataRowConverter"
     name="DataRowConverter" />
<add type="Microsoft.Web.Script.Serialization.Converters.DataTableConverter"
     name="DataTableConverter" />

关于javascript - 从 Javascript 调用服务器端方法,但在将 EnablePageMethods 设置为 True 时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5430865/

相关文章:

javascript - 如何处理 $.when promise 的失败?

javascript - 任何函数调用后是否触发 AngularJs 摘要循环?

javascript - Angular - 将 Jackson 输出转换为 JSON

c# - 在 html 电子邮件中发送 DataTable 的内容,从 DataTable 生成 HTML 的首选方法是什么?

c# - 将类添加到 anchor 链接

ajax - 无法通过 ajax 发送 '+' 字符

jquery - ajax调用不支持请求方法 'POST'

javascript - 缩放时上下文菜单偏离中心

javascript - UTF-8 编码 : Unescape(%e2%80%93) returns â instead of –

c# - 不能在 DropDownList 中选择多个项目