通过Javascript捕获cs函数的返回值

时间:2014-12-22 07:17:51

标签: javascript c# jquery html

我严重陷入编码的这一部分,我必须向用户显示数据已保存的消息。我在C#中有一个函数,它执行一个SQL过程并返回一个值。

C#功能:

    Sql p = new Sql("Data_Set"); 
    try
    {
        p.Add("plan_table", dt); \\ A temp table 
        p.Run();

        HttpContext.Current.Response.Redirect("/projmain/index.html");
        return "success";
    }
    catch (Exception e)
    {
        return "Error saving Data <br><hr>" + e.Message + "<br><br>" + e.StackTrace + "<br><br><br><br>" + p.ToString() + "";
    }
}

我想在我的HTML文件中捕获返回值,我在那里使用JsonMethodPost(Java函数)。并显示一条消息,说明数据已保存。

3 个答案:

答案 0 :(得分:0)

   Sql p = new Sql("Data_Set"); 
    try
    {
        p.Add("plan_table", dt); \\ A temp table 
        p.Run();
// heare to put allert message "success"
        HttpContext.Current.Response.Write("<script>alert('success');</script>");
        HttpContext.Current.Response.Redirect("/projmain/index.html"); 
//this code are redirect page 
        return "success"; 
    }
    catch (Exception e)
    {
        return "Error saving Data <br><hr>" + e.Message + "<br><br>" + e.StackTrace + "<br><br><br><br>" + p.ToString() + "";
    }
}

答案 1 :(得分:0)

如果用户通过发布到服务器与此功能进行交互,您可以进行ajax呼叫,并且在该呼叫成功时,显示该消息。即:

jQuery.ajax(url, {
  success: function(data){
  alert("Data saved");
}

或类似的东西。

编辑: 您可以将它放在index.html中,但这听起来像是使用java与服务器进行交互。不确定如何将该响应包装在javascript逻辑中的java函数中,该函数会将消息返回给客户端

答案 2 :(得分:0)

在这里你可以使用jquery来调用一个c#函数,它会返回消息。然后你可以在像div这样的控件中显示这条消息。例如,您有两个文本框和一个提交输入控件,当单击它时,jquery调用c#函数。 让我们的页面html像 -

        <div id="messageDiv"></div>
        <table>
            <tr>
                <td>Name:-</td>
                <td>
                    <input type="text" id="nameInput"/></td>
            </tr>
            <tr>
                <td>Email:-</td>
                <td>
                    <input type="text" id="emailInput" /></td>
            </tr>
            <tr>
                <td colspan="2">
                    <input type="submit" id="submitButton" value="Submit"/></td>
            </tr>
        </table>

此提交按钮的jquery点击事件在下面给出

$(document).ready(function () {
        $("#submitButton").click(function (e) {
            var result = ValidateAll();
            if (result == true) {
                $.ajax({
                    type: "POST",
                    url: "yourpage.aspx/yourfunction",
                    contentType: "application/json; charset=utf-8",
                    data: '{"name":"' + $("#nameInput").val() + '","email":"' + $("#emailInput").val() + '"}',
                    dataType: "json",
                    success: function (msg) {
                        if (msg.d) {
                            $("#messageDiv").html(msg.d);
                        }
                    },
                    error: function (req, status, error) {
                        alert("Error try again");
                    }
                });
            }
            return false;
        });
    });

最后你的C#功能

[WebMethod]
public static string yourfunction(string name, string email)
{
    //Insert it to our database
    return "thanks, your message";
}

请注意,该函数应具有[WebMethod]属性,并且本质上应该是静态的。 此C#函数的返回值显示在id为&#39; messageDiv&#39;的div中。