直接将BeginUmbracoForm操作转到另一个页面

时间:2015-01-21 02:05:58

标签: umbraco umbraco7

我正在尝试设置一个全局搜索框,用于发布到umbraco 7中的搜索页面。此模板使用包含指向SurfaceController的Html.BeginUmbracoForm()的共享部分。

由于这是一个全局控件,我希望将表单发布到/ search页面而不是当前页面。 BeginUmbracoForm似乎只能发布到当前页面,除非我弄错了。

我想要像RedirectToUmbracoPage(id)这样的东西,但是在重定向上清除了这个帖子的值。

有没有办法让CurrentResult像CurrentUmbracoPage一样保留帖子值?

1 个答案:

答案 0 :(得分:0)

我不会尝试使用表面控制器来达到这个目的。 Surfacecontrollers会自动路由。它们被创建为(例如)使@Html.Action(...)在每个umbraco页面上工作。包括对这些操作或宏的回发。

如果您只需要“重定向”到/搜索页面,则不需要表面控制器。一个简单的部分将完成这项工作。

<form action="/search" method="get">
  Search <input type="search" name="q" />
</form>

当然,您可以使用某些Umbraco逻辑替换网址,例如@Umbraco.TypedContentSingleAtXPath("//Search")或其他Umbraco魔法。

在umbraco文档项目中有Html.Action is used

的示例