Если ваше частичное действие просмотра возвращает ViewResult, ответ содержит фрагмент HTML. Однако вызов Ajax автоматически не вставляет результат в DOM, поскольку результат может быть в любом количестве форматов и / или может потребоваться дополнительная обработка перед обновлением DOM. Таким образом, чтобы обновить частичное представление, вам нужно взять результат вызова Ajax и вставить его в нужное место в дереве DOM.
jQuery имеет отличный метод load()
, который инкапсулирует этот процесс для вас. Он вызовет Ajax, возьмет результат и заменит внутренний HTML выбранного элемента. Вы можете даже передать свою собственную функцию для выполнения до того, как она вставит ее в дерево DOM, если вам нужно каким-либо образом преобразовать результат.
Примечание: jQuery.load()
удаляет сценарии, возвращенные в результате . Он сохраняет их для выполнения в некоторых sceanrios, но он даже не выполняет их в других сценариях. Поэтому, если ваше частичное представление содержит сценарии, вы можете самостоятельно обновить дерево DOM.
Все это не имеет ничего общего с вашим кодом C #, который выполняется на стороне сервера.
Тем не менее, у вас есть возможность сделать свое действие немного умнее, проверив, является ли запрос простым HTML, поэтому результат будет обработан браузером напрямую, или это Ajax-вызов, и результат будет обработан. по вашему сценарию, прежде чем попасть в DOM. Эта проверка выполняется с использованием Request
метода расширения IsAjaxRequest
.