Как я могу сделать частичное представление с новыми данными, используя сообщение AJAX?
Я пытаюсь обновить партию новыми данными, используя ajax. Я использовал эту функцию в JavaScript:
function replace{
$.ajax({
url: '@Url.Action("DoThing", "Controller"),
type: "POST",
datatype: "actionresult",
async: false,
data: {itemCode: $("#ComboBox-input").val(), unitCode: @(Model.UnitCode)}
});
}
И действие контроллера:
Public ActionResult DoThing(int itemCode, int unitCode)
{
var aThing = new ExModel
{
ItemCode = itemCode,
UnitCode = unitCode
}
return PartialView("_InPartial", aThing);
}
Теперь во время отладки я получаю к действию контроллера с данными, которые я послал, но я не знаю, как отобразить частичное представление с возвращенными данными.
1 ответ
Решение
Во-первых, ваша часть должна быть в элементе, на который вы можете ссылаться в js, например:
<div id="myPartialDiv"><!-- here your partial --></div>
Затем удалите тип данных (не обязательно) и добавьте метод успеха, который поместит ответ сервера (ваш обработанный фрагмент) в div:
function replace{
$.ajax({
url: '@Url.Action("DoThing", "Controller")',
type: "POST",
async: false,
data: {itemCode: $("#ComboBox-input").val(), unitCode: @(Model.UnitCode)},
success: function(response){
$('#myPartialDiv').html(response);
}
});
}
Обычно вам не нужно делать это самостоятельно, я думаю, у вас будут свои причины. Но обычно вы должны использовать Ajax.ActionLink с AjaxOptions, где вы устанавливаете UpdateTargetId
в myPartialDiv.