RenderAction需要根据包含的页面而有所不同

时间:2009-06-30 12:30:14

标签: asp.net-mvc

我使用RenderAction渲染遍布我网站的部分内容。

用户可以搜索实体的部分内容。它取决于Controller / Action,它为父主视图提供了在找到实体后所做的工作。

假设我有控制器:

  

HireController,FireController用   Action ActOnPerson和

     

带有Action FindPerson的PeopleController,它呈现部分   是FindPerson

视图是租用/ SearchPerson.aspx和Fire / SearchPerson.aspx

每个视图都包含帮助程序:

 <%Html.RenderAction("FindPerson ", "People"); %>

发布到HireController / FireController的表单包含在partial中。 它需要这样,因为实际上有一些步骤(表格帖子)涉及找人。

如果表单需要发布到FireController或HireController,有没有办法在部分FindPerson内部做出决定?我想我正在寻找像WebControls的公共属性但是对于RenderAction。

1 个答案:

答案 0 :(得分:2)

只需将参数(“PostTo”或“Next”)添加到People.FindPerson操作:

<% Html.RenderAction("FindPerson ", "People", new { next = Url.Action("ActOnPerson", "HireController") }); %>

<!-- or -->

<% Html.RenderAction("FindPerson ", "People", new { nextaction = "ActOnPerson", nextcontroller = "HireController" }); %>

在FindPerson PartialView中:

<form method="post" action="<%= ViewData["next"].ToString() %>">

<!-- or -->

<% using (Html.BeginForm(
    ViewData["nextaction"].ToString(), ViewData["nextcontroller"].ToString() ) { %>