简体   繁体   English

PageMethods.Method 未从 javascript 调用

[英]PageMethods.Method not being called from javascript

I have a javascript function that builds a string then sends the string to the c# codebehind to work with.我有一个 javascript function,它构建一个字符串,然后将该字符串发送到 c# 代码隐藏以供使用。 Problem is, the PageMethods.Method is never being called.问题是,永远不会调用 PageMethods.Method。

pertinent code:相关代码:

aspx page: aspx 页面:

<asp:ScriptManager ID="ScriptManager1" EnablePageMethods="true" EnablePartialRendering="true"
    runat="server" />
<script type="text/javascript">
function makeString() {
        debugger
        var a = document.getElementById("ddlRptYear").value + "_";
        var b = document.getElementById("ddlRptType").value + "_";
        var c = document.getElementById("ddlGeography").value + "_";
        var d = "";
        var e = "";
        var x = document.getElementById("ddlTouchPoint");
        var y = document.getElementById("ddlAOR");

        if (x.disabled == false) {
            d = x.value + "_";
        }

        if (y.disabled == false) {
            e = y.value;
        }

        var pptString = a + b + c + d + e + ".ppt";
        PageMethods.GetPPTString(pptString, onSuccess, onFail);
    }

codebehind:代码隐藏:

[System.Web.Services.WebMethod]
    public static void GetPPTString(string pptString)
    {
        if ((pptString == "") || (pptString == null))
        {
            throw new Exception("Error: No String Sent.");
        }
        else
        {
            throw new Exception(pptString);
        }
    }

I had to enable autopostback on the RadioButtonList for the SelectedIndexChanged method to be hit.我必须在 RadioButtonList 上启用自动回发才能命中 SelectedIndexChanged 方法。 It works for now, but I'll need to figure out something in the future to get past having to post back.它现在有效,但我需要在未来想出一些办法来避免不得不回发。

退货清单<object>从 C# 方法到 JavaScript PageMethods<div id="text_translate"><p> 我在 ASP.net ASPX 网页上的 JavaScript 中从 PageMethods 调用返回对象列表时遇到问题。</p><p> 在 C# 方法中,如果我返回单个 object 它可以被 JavaScript 读取,但是如果我返回一个对象列表,它会返回 500 错误。</p><p> 下面是一个返回单个 object 的示例,它可以工作。</p><p> C#</p><pre> [WebMethod] public static Project SingleObject() { Project obj = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); return obj; }</pre><p> JavaScript</p><pre> function getObject() { var object = PageMethods.GetData(onSuccess, onFailed); function onSuccess(data) { console.log(data.thing1); } function onFailed(result) { console.log("Request Failed;"); } }</pre><p> 现在,如果我更改 C# 方法以返回List&lt;Project&gt;而不是单个 object,它会在 chrome web 控制台中返回错误 500。</p><p> 下面的例子。</p><p> C#</p><pre> [WebMethod] public static List&lt;Project&gt; MulitpleObjects() { Project obj1 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); Project obj2 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); Project obj3 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); List&lt;Project&gt; objects = new List&lt;Project&gt;() { obj1, obj2, obj3 }; return objects; }</pre><p> JavaScript</p><pre> function getObjects() { var objects = PageMethods.GetData(onSuccess, onFailed); function onSuccess(data) { console.log(data[0].thing1); } function onFailed(result) { console.log("Request Failed;"); } }</pre><p> 如何更改它以能够返回对象列表?</p></div></object> - Return List<Object> from C# Method to JavaScript PageMethods

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 没有使用PageMethods调用方法背后的代码 - Code behind method not being called using PageMethods PageMethods不起作用,因为方法未从javascript调用 - PageMethods not working because method is not calling from javascript 退货清单<object>从 C# 方法到 JavaScript PageMethods<div id="text_translate"><p> 我在 ASP.net ASPX 网页上的 JavaScript 中从 PageMethods 调用返回对象列表时遇到问题。</p><p> 在 C# 方法中,如果我返回单个 object 它可以被 JavaScript 读取,但是如果我返回一个对象列表,它会返回 500 错误。</p><p> 下面是一个返回单个 object 的示例,它可以工作。</p><p> C#</p><pre> [WebMethod] public static Project SingleObject() { Project obj = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); return obj; }</pre><p> JavaScript</p><pre> function getObject() { var object = PageMethods.GetData(onSuccess, onFailed); function onSuccess(data) { console.log(data.thing1); } function onFailed(result) { console.log("Request Failed;"); } }</pre><p> 现在,如果我更改 C# 方法以返回List&lt;Project&gt;而不是单个 object,它会在 chrome web 控制台中返回错误 500。</p><p> 下面的例子。</p><p> C#</p><pre> [WebMethod] public static List&lt;Project&gt; MulitpleObjects() { Project obj1 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); Project obj2 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); Project obj3 = new Project("Thing 1", 10, 10, "Thing 2", new List&lt;string&gt;() { "Thing 3", "Thing 4" }, "thing 5", new List&lt;string&gt;() { "Thing 6", "Thing 7" }, "Thing 8", new List&lt;string&gt;() { "Thing 9", "Thing 10" }); List&lt;Project&gt; objects = new List&lt;Project&gt;() { obj1, obj2, obj3 }; return objects; }</pre><p> JavaScript</p><pre> function getObjects() { var objects = PageMethods.GetData(onSuccess, onFailed); function onSuccess(data) { console.log(data[0].thing1); } function onFailed(result) { console.log("Request Failed;"); } }</pre><p> 如何更改它以能够返回对象列表?</p></div></object> - Return List<Object> from C# Method to JavaScript PageMethods 通过PageMethods将字符串从JavaScript传递给Aspx方法 - Passing a string from JavaScript to Aspx Method via PageMethods 通过PageMethods从javascript aspx页面调用时,C#死锁中的异步函数 - Async functions in C# deadlock when called from javascript aspx page via PageMethods 从Java中的PageMethods成功函数返回结果 - Return result from PageMethods success function in Javascript 不能仅从javascript调用.NET Web方法 - .NET Web Method not being called from javascript only Page 使用PageMethods从Javascript代码调用C#布尔函数 - Call C# boolean function from Javascript code using PageMethods 阻止调用Web API方法 - Prevent Web API method from being called 带有参数的JavaScript不能从后面的代码中调用 - JavaScript with parameters not being called from code behind
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM