繁体   English   中英

从Javascript方法调用ac#函数

[英]Calling a c# function from a Javascript method

我试图从一个javascript函数调用ac#函数:

在我的default.aspx中,我有以下代码:(javascript)

<script type="text/javascript">
    function App() {
        var temp;
        temp = PageMethods.Connect();
        alert(temp);
    }
</script> 

HTML

<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
    <div class="menuContent">
        <p><a href="#" onclick="App();">blabla!</a></p>
        <div id="navTreeContainer">
            <div id="navtree"></div>
        </div>
    </div>
</asp:Content>

Default.aspx.cs

[WebMethod]
public static string Connect()
{
    string test;
    test = "test";
    return test;
}

当我尝试这一切时没有任何反应。

我不知道我在这里做错了什么......

有人可以帮我吗?

谢谢!

原因是您缺少PageMethods.Connect()方法中的几个参数。

PageMethods.Connect(); 将通过服务器上的ajax调用该函数,但它是异步的,因此您必须指定回调。

PageMethods.Connect(function(resp){ alert(resp); }, 
                    function(err){ alert(err.get_message()); });

当服务器返回结果没有错误时调用第一个回调,第二个回调在出错时被调用。

更多信息请访问:

另外,不要忘记添加脚本管理器:

<asp:ScriptManager runat="server" EnablePageMethods="true" EnablePartialRendering="true"></asp:ScriptManager>

是的,那是因为C#在服务器端执行而javascript在客户端执行,所以当你的aspx呈现页面时,“PageMethods.Connect();” 失去意义......

但是有很多方法可以使用异步请求

请参阅https://en.wikipedia.org/wiki/Ajax_%28programming%29

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM