Html.RenderAction () в ASP.NET MVC 3 - PullRequest
       2

Html.RenderAction () в ASP.NET MVC 3

1 голос
/ 06 октября 2011

В моем макете я использую 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>

Как мне избежать поста дочернего действия, когда оно приходит из другой формы? В качестве обходного пути я могу проверить переданные параметры, и если они нулевые, у меня все должно быть в порядке, но я не думаю, что это предполагаемое поведение.

1 Ответ

1 голос
/ 06 октября 2011

this.ControllerContext.IsChildAction; в вашем контроллере даст вам возможность проверить, поступает ли сообщение с URL или через Html.RenderAction.

, что может помочь вам немного лучше отладить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...