В моем макете я использую RenderAction, который выведет простую форму электронной почты, в которой будет опубликовано действие.
// In _Layout.cshtml
@{Html.RenderAction("Email", "Home")};
// Home Controller
[ChildActionOnly]
public ActionResult Email(){}
[HttpPost]
public ActionResult Email(params){}
Теперь RenderAction отлично работает, когда это единственная форма на странице. Если это не так, то действие Email Post вызывается в дополнение к другому действию формы, которое я не понимаю. Формы не являются вложенными; источник выглядит примерно так:
<form id="email-form" action="/home/email" method="post">
// form elements
</form>
<form id="some-other-form" action="/somecontroller/someaction" method="post">
// form elements
</form>
Как мне избежать поста дочернего действия, когда оно приходит из другой формы? В качестве обходного пути я могу проверить переданные параметры, и если они нулевые, у меня все должно быть в порядке, но я не думаю, что это предполагаемое поведение.