Ну, через некоторое время я столкнулся с той же проблемой, и теперь я хотел прояснить ситуацию, поэтому я посмотрел в jquery.unobtrusive-ajax.js и ответной функции:
function asyncOnSuccess(element, data, contentType) {
var mode;
if (contentType.indexOf("application/x-javascript") !== -1) { // jQuery already executes JavaScript for us
return;
}
mode = (element.getAttribute("data-ajax-mode") || "").toUpperCase();
$(element.getAttribute("data-ajax-update")).each(function (i, update) {
var top;
switch (mode) {
case "BEFORE":
top = update.firstChild;
$("<div />").html(data).contents().each(function () {
update.insertBefore(this, top);
});
break;
case "AFTER":
$("<div />").html(data).contents().each(function () {
update.appendChild(this);
});
break;
default:
// Changed this line because of generating duplicate IDs
//$(update).html(data);
$(update).html($(data).html());
break;
}
});
}
Как видно из части по умолчанию, ответ не заменял updatetargetid, а заменял его содержимое ответом. Теперь я беру внутреннюю часть ответа и все отлично работает!