我在网上创造了一个小提琴。如果我输入'Manoj'作为用户名& 'kumar'作为密码并单击Login按钮,然后我应该收到一条警告消息'Manoj kumar'。但这不会发生。我发送的是用户名&密码到控制器操作方法,但它们没有在控制器中收到。请告诉我我做错了什么。
$('.submit').click(function(){
if($('form').valid()) {
$.ajax({
url: '@Url.RouteUrl(new{ action="GetUserInfo", controller="Home"})',
data: JSON.stringify({userName: $("#txtUserName").val(), password: $("#txtPassword").val()}),
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(resp) {
if(resp != null){
if(resp.IsValidUser == true){
alert(resp.FullName);
}
else{
alert("Invalid Username or Password");
}
}
},
[HttpPost]
public ActionResult GetUserInfo(string userName,string password)
{
ActionResult result = null;
bool isValidUser = false;
string fullName = string.Empty;
if(userName == "Manoj" && password == "kumar")
{
isValidUser = true;
fullName = userName +' ' + password;
}
else {
fullName = userName + ' '+password;
}
var resultObj = new {IsValidUser = isValidUser , FullName = fullName};
result = Json(resultObj);
return result;
}
请查看以下链接。
答案 0 :(得分:0)
您的代码可以简化为;
$.post('@Url.Action("Action", "Controler")',dataToPost).done(function(){
//success
}).fail(function(){
//fail
});
摆脱application/json
部分。而不是点击事件,你可以使用onsubmit事件。
答案 1 :(得分:0)
确保您的参考脚本上有Jquery Validate,因为form.valid()将在其上:
<script src="/Scripts/jquery.validate.js"></script>
或点击此处查看CDN:JQuery Validate
它返回false,这就是为什么它不会进入你的控制器。
<强>更新强>:
确保将代码放在文档中并正确格式化ajax函数的闭包或结束括号:
<script type="text/javascript">
$(document).ready(fncInitialize);
function fncInitialize() {
$('#frmSubmit').click(function() {
if ($('form').valid()) {
$.ajax({
url: '@Url.RouteUrl(new{ action="GetUserInfo", controller="Home"})',
data: JSON.stringify({ userName: $("#txtUserName").val(), password: $("#txtPassword").val() }),
type: 'POST',
dataType: 'json',
contentType: "application/json; charset=utf-8",
success: function(resp) {
if (resp != null) {
if (resp.IsValidUser == true) {
alert(resp.FullName);
} else {
alert("Invalid Username or Password");
}
}
}
});
}
});
}
</script>
这是我的输入类型提交的代码:
<input type="submit" value="Create" id="frmSubmit" />