Trong ASP.NET MVC 5 6 ứng dụng của tôi, tôi muốn gửi với Ajax một số dữ liệu để điều khiển của tôi. Tôi đã làm điều này với ASP.NET MVC 5 và tôi đã thử nghiệm mã chính xác như nhau trong một ASP.NET MVC 5 dự án trống và nó làm việc, nhưng với phiên bản mới, tôi không thể và tôi không biết tại sao. Với cuộc gọi Ajax, tôi có thể đi đến bộ điều khiển, mô hình được tạo ra nhưng các lĩnh vực là null (hay sai cho boolean). Đây là mã của tôi:ASP.NET 5/MVC 6 Ajax bài mẫu đến controller
script.js:
var data = {
model: {
UserName: 'Test',
Password: 'Test',
RememberMe: true
}
};
$.ajax({
type: "POST",
url: "/Account/Login/",
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
// Do something interesting here.
}
});
AccountController.cs:
[HttpPost]
public JsonResult Login(LoginViewModel model)
{
if (ModelState.IsValid)
{
//var result = await SignInManager.PasswordSignInAsync(model.UserName, model.Password, model.RememberMe, shouldLockout: false);
//if (result.Succeeded)
//{
// //return RedirectToLocal(returnUrl);
//}
ModelState.AddModelError("", "Identifiant ou mot de passe invalide");
return Json("error-model-wrong");
}
// If we got this far, something failed, redisplay form
return Json("error-mode-not-valid");
}
LoginViewModel.cs:
public class LoginViewModel
{
[Required]
[Display(Name = "UserName")]
[EmailAddress]
public string UserName { get; set; }
[Required]
[DataType(DataType.Password)]
[Display(Name = "Password")]
public string Password { get; set; }
[Display(Name = "Remember me?")]
public bool RememberMe { get; set; }
}
Bất kỳ ý tưởng? Cảm ơn
thử với '.done' thay vì thành công? – naveen
Đây không phải là vấn đề. Tôi thành công vào bộ điều khiển, nhưng các trường bên trong mô hình của tôi là null. –
DTO của bạn có vẻ đúng. hmmm – naveen