Я использую Visual Studio 2010 и MVC 3 с AJAX / JQuery.У меня проблема в том, что код публикует что-то дважды.Это происходит только когда вы публикуете что-то, а затем делаете это снова.
Вот мой JS:
$(document).ready(function () {
BindEvents();
});
function BindEvents() {
$('#OpenCommentDialog').click(function (event, ui) {
var id = $(this).attr('data');
$('#NewCommentDialog').dialog({
open: function (event, ui) {
$('#BugID').val(id);
var form = $('form', '#NewCommentDialog');
form.submit(function (e) {
var comment = form.serialize(true);
CreateComment(comment);
return false;
});
}
});
$('#NewCommentDialog').dialog('open');
return false;
});
}
function CreateComment(comment) {
if (comment != null) {
$.post('/Comments/Create/', comment, function (data) {
if (data == 'Success') {
var id = $.parseQuery(comment);
GetComments(id.BugID);
$('#NewCommentDialog').dialog('close');
}
});
}
}
function GetComments(id) {
$('#Comments').find('tr').remove();
$.getJSON('/Comments/GetComments', { id: id }, function (data) {
if (data != null) {
if (data.length > 0) {
$('#CommentListTemplate').tmpl(data).appendTo('#Comments');
}
}
});
}
Моя HTML-страница имеет диалоговое окно JQuery, которое вызываетФайл CreateCommentPartial.cshtml.Когда пользователь заполняет его, он вызывает функцию «CreateComment», которая затем вызывает «GetComments» и обновляет комментарии после публикации нового.
Теперь вот проблема.Если вы снова нажмете ссылку «Создать комментарий», не перезагружая страницу и не заполнив форму, дважды будет запущен «CreateComment» и дважды «GetComments». Firebug также показывает мне это.
Что я здесь не так делаю?Если вы перезагрузите страницу (F5) после публикации, она этого не сделает.Но это побеждает цель.Нужно иметь возможность оставлять комментарии несколько раз, не перезагружая страницу.