Voici la JS:Action jQuery POST to ASP.NET MVC2, la chaîne est obligatoire, les entiers ne sont pas obligatoires ...?
$('#createReview').click(function() {
CKEDITOR.instances['ReviewText'].updateElement();
$.ajax({
type: 'POST',
cache: false,
url: '/Review/Create',
data: $('#reviewForm').serialize(),
dataType: 'html',
success: function (response) {
$('#bookReview').html(response);
}
});
return false;
});
'createReview' est
L'action:
[HttpPost, ExportModelState]
public ActionResult Create(Review review)
{
if (ModelState.IsValid)
{
if (review.Create())
return PartialView("EditReview", review);
}
return RedirectToAction("Edit");
}
Lorsque le formulaire est affiché, l'examen est créé, mais seulement la La propriété string est obligatoire - dans ce cas le ReviewText. Aucune des propriétés d'entier ne lie.
La partie la plus étrange est, lorsque je l'exécute en mode débogage, aucune des propriétés de liaison avec succès, pas même le ReviewText. Lorsque j'inspecte l'objet Review, tout est nul ou par défaut. Je suis allée et venir entre le mode normal et le débogage, et ça fait la même chose à chaque fois.
Je suis à perte.
Edit:
Voici la sortie complète de l'appel Serialize(), qui ne rentre pas dans un commentaire:
score = 0 = 0 & note & score = 0 & note = 0 = 0 & note & score = 0 = 0 & note & score = 0 = 0 & note & score = 0 = 0 & Book.Review.Rating & Note = 0 & ReviewID = 0 & ParentBookID = 1 & reviewText =% 3Cp% 3E% 0A% 09I% 26% 2339% 3Bm + an + idiot% 3C% 2Fp% 3E% 0A% 3Cbr +% 2F% 3E% 0A% 3Cdiv + version de prévention des incendies% 3D% 221.5.4% 22 + id% 3D% 22_firebugConsole% 22 + style% 3D% 22affiche% 3A + aucun% 3B% 22% 3E% 0A% 09% 26nbsp% 3B% 3C% 2Fdiv% 3E% 0A% 3Cbr +% 2F% 3E% 0A & DateCreated = 1% 2F1% 2F0001 + 12% 3A00% 3A00 + AM
Notez que "score" est introuvable dans ma base de données entière, et toute cette ordure à propos de Firebug mélangé là-dedans.
Edit # 2:
OK, donc tous les entrées "score" viennent du plugin jQuery Raty, qui a été rapidement un-plugin-ed. Firebug est en train d'attiser le texte provenant de l'instance de CKEditor, qui n'est même pas mis à jour avant la soumission du formulaire.
Ce truc côté client est vraiment génial!
Grrr ...
Avez-vous essayé d'alerter la valeur de $ ('# reviewForm'). Serialize() 'à des fins de débogage? Quel est le résultat? –
score = 0 & score = 0 & score = 0 & score = 0 & score = 0 & score = 0 & score = 0 & score = 0 & score = 0 & score = 0 & Book.Review.Rating = 0 & Rating = 0 & ReviewID = 0 & ParentBookID = 1 & reviewText =% 3Cp% 3E% 0A% 09 + ..% 3Cbr +% 2F% 3E% 0A% 09% 26nbsp% 3B% 3C% 2Fp% 3E% 0A et DateCreated = 1% 2F1% 2F0001 + 12% 3A00% 3A00 + AM – asfsadf