ASP.NET 5 MVC 6 uygulamasında, Ajax ile bazı verileri denetleyicime göndermek istiyorum. Bunu ASP.NET MVC 5 ile zaten yaptım ve boş bir ASP.NET MVC 5 projesinde tam olarak aynı kodu test ettim ve çalıştı, ancak yeni sürümü ile yapamam ve neden bilmiyorum. Ajax çağrısı ile, denetleyiciye gidebilirim, model oluşturulur, ancak alanlar boştur (veya boole için yanlıştır).ASP.NET 5/MVC 6 Ajax gönderi Denetleyici Model
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; }
}
Herhangi bir fikir İşte benim kodudur?
var data = {
UserName: 'Test',
Password: 'Test',
RememberMe: true
};
Başarı yerine ".done" ile denendi? – naveen
Sorun bu değil. Denetleyiciye başarıyla gidiyorum, ancak modelimin içindeki alanlar boş. –
DTO'nuz doğru görünüyor. hmmm – naveen