$(document).ready(function () {
$("#btn").click(function () {
var data = {
"Username": $("#name").val(),
"Password":$("#pswd").val()
}
$.ajax({
url: "/loginform/logdetail",
data: JSON.stringify(data),
type: "post",
ContentType: "application/json;charset=utf-8",
datatype: "json",
success: function (response) {
event.preventDefault();
var result = JSON.parse(response.d);
if (result.status == "success") {
window.location = "https://www.google.co.in";
return false;
}
},
error: function (result) {
alert("errormessage");
}
})
});
});
在logdetail()
方法中,字符串值为null
。我如何获得字符串值?
public JsonResult logdetail(string Username, string Password)
{
return Json(dbform.checkuser(Username,Password),JsonRequestBehavior.AllowGet);
}
答案 0 :(得分:1)
请看下面的解决方案,首先要把preventDefault();在成功函数之外,并在服务器端创建与JSON对象相同的类
public class User {
public string Username { get; seet; }
public string Password{ get; seet; }
}
将行动改为
public JsonResult logdetail(User user) {..}
答案 1 :(得分:1)
您的代码中几乎没有错误:
特别是这2行
contentType: "application/json; charset=utf-8",
data: JSON.stringify({ userdataObj: data })
您的ajax代码将变为:
$(document).ready(function () {
$("#btn").click(function () {
var data = {
"Username": $("#name").val(),
"Password":$("#pswd").val()
}
$.ajax({
url: "/loginform/logdetail",
data: JSON.stringify({ userdataObj: data }),
type: "post",
contentType: "application/json; charset=utf-8",
datatype: "json",
success: function (response) {
event.preventDefault();
var result = JSON.parse(response.d);
if (result.status == "success") {
window.location = "https://www.google.co.in";
return false;
}
},
error: function (result) {
alert("errormessage");
}
})
});
});
现在创建一个包含以下详细信息的用户数据类
public class User
{
public string Username { get; set; }
public string Password{ get; set; }
}
将控制器更改为以下代码:
[HttpPost]
public JsonResult logdetail(User userdataObj)
{
return Json(dbform.checkuser(userdataObj.Username,userdataObj.Password),JsonRequestBehavior.AllowGet);
}
答案 2 :(得分:0)
你可以做两件事来解决这个问题。
1)使用两个属性(用户名,密码)创建User
类,修改logdetail
函数,如logdetail(User user)
,并使用您的javascript ajax调用版本。
2)如果你想使用相同版本的控制器(logdetail(string Username, string Password)
),那么你必须修改你的javascript ajax调用。
$(document).ready(function () {
$("#btn").click(function () {
var username = $("#name").val();
var password = $("#pswd").val();
$.ajax({
url: "/loginform/logdetail",
data: { Username: username, Password: password }
type: "post",
ContentType: "application/json;charset=utf-8",
datatype: "json",
success: function (response) {
event.preventDefault();
var result = JSON.parse(response.d);
if (result.status == "success") {
window.location = "https://www.google.co.in";
return false;
}
},
error: function (result) {
alert("errormessage");
}
})
});
});