C# 函数返回一个值并显示在网页中

Posted

技术标签:

【中文标题】C# 函数返回一个值并显示在网页中【英文标题】:C# functions returns a value and show in webpage 【发布时间】:2013-03-13 11:46:39 【问题描述】:

我在我的 apx.cs 文件中用 C# 编写了以下函数

[WebMethod]
public static string  SendForm()

    string message = "hello world";
    return message;

当我的脚本在我的 aspx 文件中调用该函数时,我试图显示消息(“hello world”)

<script>
    function SendForm() 
        var msg;
        msg = PageMethods.SendForm(OnSucceeded, OnFailed);

        function OnSucceeded() 
            alert(msg);
        

        function OnFailed(error) 
            // Alert user to the error.
            alert("failed");
        
    
</script>
    <body>
    <form id="Form1" runat="server">
   <asp:ScriptManager ID="ScriptManager" runat="server"
       EnablePageMethods="true" />
   <fieldset id="ContactFieldset">
        <input type="button" onclick="return SendForm()" value="send" />
   </fieldset>
</form>
</body>

当我点击按钮发送时,我收到一条带有“未定义”消息的警报,因此我的 var 'msg' 未定义,但是如何将 C# 函数中的“hello world”放入 msg var 中?

谢谢

【问题讨论】:

您能告诉我们您使用的是什么 .Net 框架吗? 【参考方案1】:

这不是您接收消息的方式。

这样做

   function SendForm() 
        PageMethods.SendForm(OnSucceeded, OnFailed);

        function OnSucceeded(msg) 
            alert(msg);
        

        function OnFailed(error) 
            // Alert user to the error.
            alert("failed");
        
    

您的成功函数将接收函数调用的结果作为参数。

【讨论】:

【参考方案2】:

尝试使用

 function OnSucceeded() 
        alert(msg.d);
    

编辑-1

请通过此链接 How do I call a particular class method using ScriptManager

【讨论】:

如果 msg 未定义,它如何从中获取值? @Eclectica_ 我提供了一个链接。【参考方案3】:

我不确定您使用的是哪个版本的 .Net 框架,但如果是 3.5,那么您可能需要查看以下链接:

http://encosia.com/a-breaking-change-between-versions-of-aspnet-ajax/

从 asp.net 3.5 开始,响应被包裹在 .d 中。

【讨论】:

【参考方案4】:
    function SendForm() 
        var msg;
        msg = PageMethods.SendForm(function (result) 
            alert(result);
        , function (error) 
            alert(error);
        );
    

这应该可以。

如果从 SendForm 方法抛出异常,它会自动转到错误方法。

[WebMethod]
public static string  SendForm()

    throw new Exception("Error");

    string message = "hello world";
    return message;

【讨论】:

以上是关于C# 函数返回一个值并显示在网页中的主要内容,如果未能解决你的问题,请参考以下文章

从列中获取值并根据值是不是正确显示该行中的所有内容(LINQ - c# web API)

在ASP.NET(C#)中,return的作用是啥,是退出当前过程,还是退出网页的所有程序呢。

如何从exe获取返回值并重新启动它

bootstrap modal 用ajax json传值并返回显示在modal内

Javascript 在数组中搜索一个值并获取它的键

检查值并返回结果的函数