2011-01-13 23 views
2

我很难找出如何做到以下几点:MVC2 - 如何在每个页面上放置常见的LOGIC控件(如搜索/查找)?

在每一页(或每一页我都这么渴望),我想把一个公共控件(例如think-包含一个搜索功能文本框+按钮)。什么是最好的方式来做到这一点,谁处理提交按钮(假设它是一个提交按钮)?

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

我曾尝试使用RenderAction的“Search.ascx”,其中包含一个窗体,并由我的SearchController处理...但在SearchController中,它然后尝试调用RedirectToAction ...并且我收到投诉Child Actions上不允许使用RedirectActions。

我对下一步做什么有点失落,所以建议大大欢迎! Ray

回答

0

显示HTML元素的最佳方式是将它们放在母版页或母版页引用的部分中。我想它是它自己的形式并提交给你的SearchController。

让我知道你是否想要更多的细节。

0

RenderPartial是去这里的路。你的control.ascx将由它的表单和提交按钮组成。

1

您似乎是在正确的轨道上(使用ViewUserControlRenderPartial)。但随着你所提供的信息,这是不容易看到你的其他问题是什么(的RenderAction,...)

这是很容易:

  • 创建一个用户控件(的.ascx),并获得在那里用URL/search/...在那里形成,你可以找回。
  • 在您的意见中,请致电RenderPartial并提供视图名称
  • 创建控制器以接收来自搜索的文章。这与您的父视图控制器不一样。
+0

作为挑剔的我会改写“这是不一样的控制器。”是“这不一定是相同的控制器......”因为搜索可能是雷正在控制器上的动作。 [搜索控制器虽然适合...的可能性很大] – 2011-01-13 21:30:30

0

怎样做这个

可能是一个局部视图的最佳途径。一个.ascx文件。

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

局部视图

是什么我ViewUserControl看起来像 ?它有形式吗?

是的,它有一个窗体。它应该尽可能地自成体系。

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

那么,什么适合你确切的情况最好。它应该发布到哪个行动是最合适的。这不太可能是主视图的操作,因为该部分被重用于不同的父视图。

我曾尝试使用含有一种形式, ,它被我 SearchController处理的 “Search.ascx”的...的RenderAction但在 SearchController,它将尝试 调用RedirectToAction .. 。我得到关于Red Actions的 投诉,而不是 允许在Child Actions上。

您可能希望在父视图中使用的RenderPartial以使其:

<%: Html.RenderPartial("MyPartialView.ascx") %> 
0

好吧,我想通了,我的问题是什么。上面的回复是正确的。我有我自己的Search.ascx用户控件和SearchController,我也用过RenderPartial,但是让我难过的是我忘了明确指定控制器/操作...所以我就在onclick事件和Url.Action上摆弄我改为按钮。

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

感谢所有回答的人。

相关问题