在我的布局中,我正在使用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>
如果来自不同的表格,我如何避免儿童行动的帖子?作为一种解决方法,我可以检查传入的参数,如果它们是空的,我应该很好,花花公子,但我不认为这是预期的行为。
答案 0 :(得分:1)
this.ControllerContext.IsChildAction;
可让您检查帖子是来自网址还是来自Html.RenderAction
。
这可能会帮助您更好地调试它。