2011-01-13 3 views
2

私は次のようにするには問題があります:MVC2 - どのように共通のLOGICコントロール(検索/検索のように)を各ページに配置しますか?

すべてのページ(または私が望むすべてのページ)に共通のコントロールウィジェットを配置したいと思います。テキストボックス+ボタン)。これを行う最善の方法は何ですか?また、送信ボタンを処理するのは誰ですか(送信ボタンであることを前提とします)。

つまり、私のViewUserControlはどのように見えますか?それはフォームを持っていますか? jQuery onclick ""を使用していますか?メインのViewのアクションメソッドにポストするのですか、それを別のコントローラ/アクションにリダイレクトできますか?

フォームを含む "Search.ascx"のRenderActionを使用しようとしましたが、SearchControllerで処理されますが、SearchControllerではRedirectToActionを呼び出そうとしています。子アクションにRedirectActionsが許可されていません。

私は次に何をするのか分からないので、大歓迎です! Ray

答えて

0

HTML要素を表示させる最も良い方法は、マスターページに表示するか、マスターページで参照される部分に配置することです。私はそれが自分のフォームであり、SearchControllerに提出する必要があります。

詳細をご希望の場合はお知らせください。

0

RenderPartialはここに行く方法です。あなたのcontrol.ascxはフォームと送信ボタンで構成されます。

1

正しいトラックにいるようです(ViewUserControlRenderPartialを使用)。しかし、あなたが提供した情報と、あなたの他の問題は、(...、RenderAction)されているかを確認することは容易ではない

それは簡単です:

  • は、ユーザーコントロール(た.ascx)を作成し、取得しますそこには/ search/...というURLがありますが、あなたが戻ってくることができます。
  • あなたのビューでは、RenderPartialを呼び出し、ビュー名を提供します
  • あなたの検索から投稿を受け取るようにコントローラを作成してください。これは親ビューコントローラと同じコントローラではありません。
+0

私は、「これは同じコントローラーではありません」という言い回しは、「これは必ずしも同じコントローラーではありません」と言います。検索はRayが作業しているコントローラーのアクションになる可能性があるためです。 [確かに、検索コントローラは適切だとは思いますが...] –

0

おそらく部分的なビューをこの

を行うための最善の方法は何ですか。 .ascxファイル。

(送信ボタンであると仮定します)送信ボタンを処理するのは誰ですか?

部分図

私ViewUserControlは次のように をどのように見えるのでしょうか?それはフォームを持っていますか?

はい、フォームを持ちます。できるだけ自己完結型でなければなりません。

jQuery onclick ""を使用していますか?それは メインのViewのアクションメソッド に投稿するか、別のコントローラにリダイレクトすることができます コントローラ/アクション?

あなたの正確なシナリオに最も適したものは何でも。それはおそらく、どの行動が最も適切かを示すべきです。部分ビューは異なる親ビューで再利用されるため、メインビューのアクションではありそうにありません。

私は、フォームが含まれてい 「Search.ascx」のRenderAction、 を使用してみましたが、私の SearchControllerによって処理されます...しかし SearchControllerで、それはその後、 コールRedirectToActionにしようとします。..チャイルドアクションで が許可されていないRedirectActionsに関する の申し立てがあります。あなたはおそらく、親ビュー内れるrenderPartialを使用して、それをレンダリングしたいと思う

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

[OK]を、私は私の問題が何であったかを考え出しました。上記の回答は正しいです。私は自分のSearch.ascxユーザーコントロールとSearchControllerを持っていますが、私もRenderPartialを使っていましたが、私を困惑させたのはコントローラ/アクションを明示的に指定するのを忘れてしまったからです。ボタンをクリックします。

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

すべての人に感謝します。

関連する問題