2

次のことを行う方法を理解するのに問題があります。

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

つまり、ViewUserControl はどのように見えますか? 形はありますか?jQuery onclick"" を使用していますか? メインビューのアクションメソッドに投稿しますか、それとも別のコントローラー/アクションにリダイレクトできますか?

フォームを含み、SearchController によって処理される "Search.ascx" の RenderAction を使用しようとしましたが、SearchController で RedirectToAction を呼び出そうとします...子アクション。

私は次に何をすべきかについて少し迷っているので、提案は大歓迎です! レイ

4

5 に答える 5

1

あなたは正しい軌道に乗っているようです (ViewUserControlとを使用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

これを行う最善の方法は何ですか

おそらく部分的なビューです。.ascx ファイル。

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

部分的なビュー

私のViewUserControlはどのように見えますか? 形はありますか?

はい、形があります。可能な限り自己完結型である必要があります。

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

まあ、あなたの正確なシナリオに最適なものは何でも。おそらく、最も適切なアクションに投稿する必要があります。パーシャルは別の親ビューで再利用されるため、これはメイン ビューのアクションではない可能性があります。

フォームを含み、SearchController によって処理される "Search.ascx" の RenderAction を使用しようとしましたが、SearchController で RedirectToAction を呼び出そうとします...子アクション。

親ビューで RenderPartial を使用してレンダリングすることをお勧めします。

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

HTML 要素を表示する最善の方法は、マスター ページに配置するか、マスター ページによって参照されるパーシャルに配置することです。それを独自のフォームにして、SearchControllerに送信します。

詳細が必要な場合はお知らせください。

于 2011-01-13T21:02:14.370 に答える
0

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

于 2011-01-13T21:02:16.400 に答える