1
在我的布局中,我使用了RenderAction,它将输出一个简单的电子邮件表单,它将发布到一个操作。ASP.NET MVC 3中的Html.RenderAction()
// In _Layout.cshtml
@{Html.RenderAction("Email", "Home")};
// Home Controller
[ChildActionOnly]
public ActionResult Email(){}
[HttpPost]
public ActionResult Email(params){}
现在,RenderAction的工作效果很好,因为它是页面上唯一的表单。但是,如果不是,则除了我不了解的其他表单操作之外,还会调用电子邮件发布操作。表格不是嵌套的;源代码看起来像这样:
<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>
如何避免儿童动作来自不同的形式?作为一种解决方法,我可以检查传入的参数,如果它们为空,我应该很好,并且很花哨,但我不认为这是预期的行为。