繁体   English   中英

如何使用 ZD7EFA19FBE7D3972FD745ADB602422 方法从 ASP.Net Javascript AJAX 请求返回 boolean 值?

[英]How to return boolean value from ASP.Net Javascript AJAX request with C# Method?

背景:我正在尝试调用 C# function 以从 the.aspx 网页上的 JavaScript 代码返回用户名和密码的身份验证结果。

目前我有以下 Javascript AJAX POST 请求。

$.ajax({
            type: "POST",
            url: "Management Login Page.aspx/Authenticate",
            data: { username: username, username: password},
            success: function(data) 
            {
                alert('ok');
                console.log(data);

                if (data.result == true)
                {
                    alert('correct');
                    window.location.replace("Management Page.aspx");
                }
            },
            Error: function ()
            {
                alert('error');
            }

        });

这从“Management Login Page.aspx”中的“Management_Login_Page”class 中调用以下方法“Authenticate”

[WebMethod]
    public static bool Authenticate(string username, string password)
    {
        System.Diagnostics.Debug.WriteLine(username, password);

        if ((username == "test") && (password == "test"))
        {
            return true;
        }

        return false;
    }

它返回整个 html 页面(如下所示),而不是仅返回单个 boolean 值。

ect.....

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

    <style>
        body {
            padding: 0;
            margin: 0;
        }

        html, body, #Login1 {
            height: 100%;
            font: 10pt "Helvetica Neue", Arial, Helvetica, sans-serif;
            align-content: center;
        }

        .lorem {
            font-style: italic;
            color: #AAA;
        }

        .center {
          display: block;
          margin-left: auto;
          margin-right: auto;
        }
    </style>
</head>
<body class="login login-action-login wp-core-ui  locale-en-us">
    <div id="login">

如果我将以下内容添加到 AJAX 请求中,我会在网页上收到错误 500。

dataType: 'json',
contentType: "application/json; charset=utf-8",

如何修改代码以仅返回 Boolean 值?

编辑 - 更新为 bool in 方法作为测试剩余的字符串

这是正确的吗?

data: { username: username, username: password},

我看到 2 个用户名。

此外,数据通常是一个字符串:

data: JSON.stringify({ username: "username", username: "password"}),

我找到了另一种使用 PageMethods 让它工作的方法。

function checkCredentials()
    {
        console.log("Running Credentials Check...");

        var username = document.getElementById("user_login").value.toString();
        var password = document.getElementById("user_pass").value.toString();

        var op = PageMethods.Authenticate(username,password,onSuccess,onFailed);
    }

    function onSuccess(data)
    {
        if (data == 1)
        {
            window.location.replace("Management Page.aspx");
        }
    }

    function onFailed(result)
    {
       return;
    }

C# 方法返回 0 或 1,具体取决于用户名和密码是否正确。

暂无
暂无

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

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