繁体   English   中英

ASP.NET MVC 3中的Html.RenderAction()

[英]Html.RenderAction() in ASP.NET MVC 3

在我的布局中,我使用的是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>

如果来自其他形式的子操作出现在我的后部,该如何避免? 作为一种变通办法,我可以检查传入的参数,如果它们为null,则应该没问题,但我认为这不是预期的行为。

this.ControllerContext.IsChildAction; 控制器中的,将使您能够检查帖子是来自URL还是来自Html.RenderAction

这可能会帮助您更好地调试它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM