Я собираюсь использовать здесь немного другой подход, вместо того, чтобы заставить ваше оригинальное решение работать, я бы рекомендовал использовать шаблон, обычно используемый в этом сценарии, а не помощника. Я понимаю, что это немного позже, чем оригинальный пост, но для дальнейшего использования любым:)
Если ваше частичное представление имеет форму, то вы будете продолжать публиковать и возвращать форму в форме в форме в форме и т. Д., Поэтому вы хотите, чтобы ваш PARENT содержал BeginForm, div и renderpartial
using (Ajax.BeginForm("Index", "ProjectManager", new AjaxOptions() ....
<div id="divPlaceholder">
Html.RenderPartial(....)
</div>
Если вы хотите инкапсулировать эту логику в, скажем, частичное представление «Заказ», которое отображается на экране «Клиент», то у вас есть два варианта.
1. Включите BeginForm в родительское представление Customer (которое уменьшает возможность многократного использования кода, поскольку любое представление, которое хочет включить частичное представление "Order", должно включать ajax-подключение.
Или же
2. У вас есть два частичных представления для заказа. Одним из них является OrderIndex.ascx (или cshtml, если бритва), а другим - OrderIndexDetail.ascx (или любое другое соглашение об именовании, которое вы решите)
OrderIndex содержит ваш Ajax.beginform, а OrderIndexDetail не имеет формы, только детали частичного просмотра.
Вариант 2 - это больше кода (хорошо, буквально около 30 секунд кода, чтобы переместить ajax.beginform в другое представление), но увеличивает возможность повторного использования кода.