2

我无法弄清楚如何执行以下操作:

在每个页面(或我想要的每个页面)上,我想放置一个通用控件小部件(例如 think - 包含文本框 + 按钮的搜索功能)。最好的方法是什么?谁处理提交按钮(假设它是一个提交按钮)?

即我的 ViewUserControl 是什么样的?它有表格吗?它使用jQuery onclick“”吗?它是否发布到主视图的操作方法,或者我可以将它重定向到另一个控制器/操作?

我尝试使用包含表单的“Search.ascx”的 RenderAction,并由我的 SearchController 处理......但在 SearchController 中,它然后尝试调用 RedirectToAction......我收到关于 RedirectActions 不允许的投诉儿童行动。

我对下一步该怎么做有点迷茫,所以非常欢迎提出建议!射线

4

5 回答 5

1

您似乎走在正确的轨道上(使用ViewUserControland RenderPartial)。但是根据您提供的信息,很难看出您的其他问题是什么(RenderAction,...)

这很容易:

  • 创建一个 UserControl (.ascx) 并在其中获取一个 URL 为 /search/... 的表单,您可以返回该表单。
  • 在您的视图中,调用 RenderPartial 并提供视图名称
  • 创建您的控制器以接收来自您的搜索的帖子。这与您的父视图控制器不同。
于 2011-01-13T21:03:59.533 回答
0

好的,我知道我的问题是什么。楼上的回复都是对的。我有自己的 Search.ascx 用户控件和 SearchController,我也使用了 RenderPartial,但让我难过的是我忘记明确指定控制器/动作......所以我在我的 onclick 事件和 Url.Action 上摆弄按钮。

<% using (Html.BeginForm("MySearchAction", "MySearchController")) { %>

感谢所有回复的人。

于 2011-01-13T21:38:38.900 回答
0

显示 HTML 元素的最佳方法是将它们放在母版页中,或者放在母版页引用的部分中。我希望它是自己的表单并提交给您的 SearchController。

如果您想了解更多详情,请告诉我。

于 2011-01-13T21:02:14.370 回答
0

RenderPartial 是这里的方法。您的 control.ascx 将由它的表单和提交按钮组成。

于 2011-01-13T21:02:16.400 回答
0

最好的方法是什么

大概是片面的看法。.ascx 文件。

谁处理提交按钮(假设它是一个提交按钮)?

局部视图

我的 ViewUserControl 是什么样的?它有表格吗?

是的,它有一个表格。它应该尽可能地自给自足。

它使用jQuery onclick“”吗?它是否发布到主视图的操作方法,或者我可以将它重定向到另一个控制器/操作?

好吧,无论哪种方式最适合您的确切情况。它可能应该发布到最合适的操作。这不太可能是主视图的操作,因为部分在不同的父视图中被重用。

我尝试使用包含表单的“Search.ascx”的 RenderAction,并由我的 SearchController 处理......但在 SearchController 中,它然后尝试调用 RedirectToAction......我收到关于 RedirectActions 不允许的投诉儿童行动。

您可能希望在父视图中使用 RenderPartial 渲染它:

<%: Html.RenderPartial("MyPartialView.ascx") %>
于 2011-01-13T21:08:50.077 回答