У меня есть функция, которая обновляет div с необработанным HTML. Однако необработанный HTML находится в другом документе.CSHTML.
Моя функция:
function Demo(){
$('#ContainerDiv').html('@Html.Partial("MyPartialView")');
}
По какой-то причине, когда я включаю свое частичное представление в эту функцию, моя консоль показывает, что она не может найти документ.
Как только я удалю @Html.PartialView("MyPartialView") и включит его в тело документа, он загрузится нормально.
Любые идеи о том, почему это не работает, или лучший способ сделать это?
Спасибо, Марк
Ваше частичное представление, вероятно, содержит разрывы строк, что приводит к многострочным строковым литералам, которые недопустимы в js. Я вижу два варианта: рендеринг частичного представления в скрытом div при загрузке страницы и переносе ее на #ContainerDiv
когда вам нужно, или использовать ajax для получения контента позже.
Вы можете вызвать действие, а затем заполнить контейнер с помощью полученного HTML.
Например:
Действие:
public PartialViewResult GetPartial() {
return PartialView("MyPartialView");
}
JQuery:
$.get('@Url.Action("GetPartial")').done(function(response){
$('#ContainerDiv').html(response)
}
Я всегда использовал .load()
и url для частичного представления. Вот так:
function Demo(){
$('#ContainerDiv').load('@Html.Raw(Url.Action("MyPartialView"))');
}
Изменение: Забыл изменить .html()
на .load()