C# web api控制器调用问题
大家好,当用户单击登录时,我已经编写了以下代码C# web api控制器调用问题,c#,asp.net,asp.net-web-api2,C#,Asp.net,Asp.net Web Api2,大家好,当用户单击登录时,我已经编写了以下代码 function login() { var Emp = {}; var username = $("#username").val(); var password = $("#password").val(); Emp.userID = username; Emp.ppassword = password; $.ajax({ t
function login() {
var Emp = {};
var username = $("#username").val();
var password = $("#password").val();
Emp.userID = username;
Emp.ppassword = password;
$.ajax({
type: "GET",
url:"<%=Page.ResolveUrl("/api/Login/")%>",
contentType: "application/json;charset=utf-8",
data: JSON.stringify(Emp),
dataType: "json",
success: function (response) {
alert('Inserted');
},
error: function (x, e) {
alert(x.responseText);
}
});
}
控制器代码
public class LoginController : ApiController
{
string strcon = ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString;
SqlConnection con = null;
SqlCommand cmd = null;
private bool CheckLogin(string userID, string password)
{
bool bFlag = false;
con = new SqlConnection(strcon);
con.Open();
cmd = new SqlCommand("uspGetUserDetails", con);
cmd.CommandType = CommandType.StoredProcedure;
SqlParameter parm = new SqlParameter("@return", SqlDbType.Int);
parm.Direction = ParameterDirection.ReturnValue;
cmd.Parameters.Add(parm);
cmd.Parameters.Add(new SqlParameter("@UserName", userID));
cmd.Parameters.Add(new SqlParameter("@password", password));
cmd.ExecuteNonQuery();
con.Close();
int id = Convert.ToInt32(parm.Value);
return bFlag;
}
}
但是,单击“登录”时,我收到一个错误,因为没有找到与请求匹配的HTTP资源,因此有人可以帮助我哪里出错了您发送的数据应该与操作方法参数名称匹配。因此,如果不是输入错误,请在开头使用单个'p'将
Emp.ppassword=password
重命名为->Emp.password=password
此外,如果您希望您的操作方法对internet可见,请将其公开
public bool CheckLogin(string userID, string password)
{
// ...
}
控制器的单参数方法在哪里?在“DefaultApi”配置中,您只定义了一个可选参数。如果
CheckLogin
是您的GET
action/endpoint(正如您的ajax调用所建议的那样),则可以调用它GetCheckLogin
或使用[HttpGet]
属性对其进行修饰。另外,确保它是公开的,而不是私人的。
public bool CheckLogin(string userID, string password)
{
// ...
}