Как мне сделать частичное представление, используя jquery?
Мы можем сделать частичное представление следующим образом:
<% Html.RenderPartial("UserDetails"); %>
Как мы можем сделать то же самое, используя jquery?
Как мне сделать частичное представление, используя jquery?
Мы можем сделать частичное представление следующим образом:
<% Html.RenderPartial("UserDetails"); %>
Как мы можем сделать то же самое, используя jquery?
Ответы:
Вы не можете визуализировать частичное представление, используя только jQuery. Однако вы можете вызвать метод (действие), который будет отображать для вас частичное представление, и добавить его на страницу с помощью jQuery / AJAX. Ниже у нас есть обработчик нажатия кнопки, который загружает URL-адрес действия из атрибута данных на кнопке и запускает запрос GET, чтобы заменить DIV, содержащийся в частичном представлении, на обновленное содержимое.
где пользовательский контроллер имеет действие с именем details, которое выполняет:
Это предполагает, что ваше частичное представление является контейнером с идентификатором
detailsDiv
так что вы просто заменяете всю вещь содержимым результата вызова.Кнопка родительского просмотра
User
имя контроллера и имяdetails
действия в@Url.Action()
. UserDetails частичное представлениеисточник
Я использовал ajax load для этого:
источник
UserDetails
название действия, а не частичное представление, верно?@Url.Action("ActionName","ControllerName", new { area = "AreaName" } )
вместо делать Handcoding .@tvanfosson ошеломляет своим ответом.
Тем не менее, я бы предложил улучшение в js и небольшую проверку контроллера.
Когда мы используем
@Url
помощник для вызова действия, мы собираемся получить отформатированный HTML. Было бы лучше обновить содержимое (.html
), а не фактический элемент (.replaceWith
).Подробнее об этом: в чем разница между replaceQith () и html () в jQuery?
Это особенно полезно в деревьях, где содержимое может быть изменено несколько раз.
На контроллере мы можем повторно использовать действие в зависимости от запрашивающей стороны:
источник
Еще одна вещь, которую вы можете попробовать (основываясь на ответе tvanfosson):
А затем в разделе сценариев вашей страницы:
Это делает ваш @ Html.RenderAction с помощью ajax.
И чтобы сделать все это фанатским sjmansy, вы можете добавить эффект постепенного появления, используя этот css:
Человек я люблю MVC :-)
источник
<div class="renderaction fade-in" ...></div>
элементов.Вам нужно создать Action на вашем контроллере, который возвращает результат визуализации частичного представления или элемента управления «UserDetails». Затем просто используйте Http Get или Post из jQuery, чтобы вызвать Action для отображения отображаемого html.
источник
Использование стандартного вызова Ajax для достижения того же результата
источник
Я сделал это так
Метод деталей:
источник
Если вам нужно сослаться на динамически генерируемое значение, вы также можете добавить параметры строки запроса после @ URL.Action, например, так:
источник