Вернуть PartialView из $.Ajax Post
У меня есть следующий код:
$.ajax({
url: "/Home/jQueryAddComment",
type: "POST",
dataType: "json",
data: json,
contentType: 'application/json; charset=utf-8',
success: function(data){
//var message = data.Message;
alert(data);
$('.CommentSection').html(data);
}
И в моем контроллере
[ValidateInput(false)]
public ActionResult jQueryAddComment(Comment comment)
{
CommentSection commentSection = new CommentSection();
//ya da - ya da
// fill the commentsection object with data
//then
return PartialView("CommentSection", commentSection);
}
Однако, когда я возвращаюсь к странице, предупреждение об успешном завершении не происходит. Может ли кто-нибудь увидеть недостаток в этой логике?
Ответы
Ответ 1
Ожидание JSON
в .Ajax POST
, но в ActionMethod вы возвращаете PartialView
?
Try:
$.ajax({
url: "/Home/jQueryAddComment",
type: "POST",
dataType: "html",
data: json,
success: function(data){
//var message = data.Message;
alert(data);
$('.CommentSection').html(data);
}
}
Ответ 2
Если он не был скопирован по ошибке, кажется, что вам не хватает некоторых токенов закрытия.
$.ajax({
url: "/Home/jQueryAddComment",
type: "POST",
dataType: "json",
data: json,
contentType: 'application/json; charset=utf-8',
success: function(data){
//var message = data.Message;
alert(data);
$('.CommentSection').html(data);
} //<-- added close for anonymous function
}); //<--added close/semicolon for ajax function
Кроме того, вы используете POST, но у вашего действия нет атрибута [Post]. Когда вы запускаете это в отладчике, попадает ли точка останова в вашем действии?