Nella mia applicazione ASP.NET 5 MVC 6, desidero postare con Ajax alcuni dati sul mio controller. L'ho già fatto con ASP.NET MVC 5 e ho testato lo stesso codice esatto in un progetto vuoto ASP.NET MVC 5 e ha funzionato, ma con la nuova versione non posso e non so perché. Con la chiamata Ajax, posso andare al controller, il modello viene creato ma i campi sono nulli (o false per il booleano). Ecco il mio codice:ASP.NET 5/MVC 6 Ajax invia il modello al 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; }
}
Tutte le idee? Grazie
provato con '.done' invece di successo? – naveen
Questo non è il problema. Sono andato con successo al controller, ma i campi all'interno del mio modello sono nulli. –
il tuo DTO sembra essere corretto. hmmm – naveen