如何在asp.net中添加动态javascript警报框?

时间:2014-12-01 19:15:32

标签: javascript c# asp.net visual-studio

请帮帮我。我是asp.net的新手。如何在asp.net网页表单中编写动态javascript?我想要做的是如下代码。

以下代码位于服务器端的按钮单击事件中,以c#编写。请帮帮我。

if(Email.send()){
//show javascript alert box
}else{
//show javascript alert box
}

2 个答案:

答案 0 :(得分:0)

创建一个通过AJAX调用的web方法,并根据该函数的结果弹出javascript警报。

示例(在您的.aspx页面中):

        function doSomething() {
            $.ajax({
                type: "POST",
                url: "Do_Something.aspx/DoSomething",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (response) {
                    alert(response);
                }
            });

在Do_Something.aspx.cs中:

    [WebMethod]
    public static string DoSomething()
    {
        if (Email.Send)
        {
            return "success";
        }
        return "not a success";
    }

答案 1 :(得分:0)

使用asp.net,所有服务器端代码将在Web页面发送给最终用户之前运行,然后将该代码的结果注入HTML / Javascript。

此外,将服务器端代码注入javascript时,您需要在字符串文字(引号)中执行此操作。

所以,如果你有一个javascript点击处理程序:

if ("@Email.Send()") {
    // stuff
} else {
    // other stuff
}

将运行Email.Send()命令,该命令的结果将放在Html中。如果您的Send函数返回了一个布尔值,我假设它是这样,返回给您的最终用户的Html将如下所示:

if ("true") {
    // stuff
} else {
...

我认为这不是你想要的结果。执行此操作的正确方法是在您的单击命令中通过AJAX触发服务器上的另一个命令,并将该AJAX命令的结果用于您的逻辑。它看起来像这样:

function clickHandler() {
    $.ajax({
        type: "POST",
        url: "UrlToYourServerSideAction",
        data: {
            WebParam1: "value",
            WebParam2: "value"
        },
        success: function (response) {
            if (response == "true") {
                // code if Web Method returns true
            } else {
                // code if Web Method returns false
            }
        }
    });
}