![](/img/trans.png)
[英]Posting request from javascript in AJAX to C# methods, no returning value, ASP.NET, MVC
[英]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.