問題タブ [renderaction]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2802 参照

asp.net - Html.RenderActionを取得して投稿のGetメソッドを呼び出すにはどうすればよいですか?

Postでビューをレンダリングした後、ビュー内でRenderActionを呼び出すと、Postメソッドが呼び出されます。Postの代わりにGetメソッドを呼び出すように指定する方法はありますか?

0 投票する
1 に答える
809 参照

asp.net-mvc-2 - ASP MVC2 での部分キャッシュの現在の慣行は何ですか?

私のウェブサイトのページは、2 種類のコンテンツで構成されています。1 つ目は、ユーザー間で変動しますが、すべてのページで一定です。2 つ目は、ユーザー間で一定ですが、ページ間で変動します。これは一般的なレイアウトです。このようなコンテンツに出力キャッシュを適用する最良の方法は何ですか?

私が理解しているように、Html.Substitute ヘルパーは MVC2 レンダリング パイプラインと互換性がなく、ドーナツ キャッシュの古い方法を排除しています。

すべてのページに VaryByParam="user" で通常の出力キャッシュを使用しますか?

特異性のレベルによって、出力キャッシュの価値が低下します。キャッシュされた出力の有効期間内に、同じユーザーが同じページを何度も表示することはほとんどありません。

別の OutputCache サブシステムを使用する

OutputCache 属性とレンダリング サブシステムを変更して置換をサポートする試みがインターネット上にいくつか出回っています。私が見つけた最高のものはここにあります。

ただし、私が見つけたさまざまなスニペットは非公式の実装のようで、十分にサポートされていません。さらに、置換を MVC2 パイプラインに簡単に追加できるのであれば、それは完了していたのではないかと思う傾向があります。

個別にキャッシュされたいくつかの子アクションから最終ページを構成します

アクション メソッドは属性でフラグ付けされず、個別にキャッシュされたコンテンツを取得するOutputCacheいくつかの呼び出しを含むビューを返します。Html.RenderActionを使用することのわずかに重い意味はRenderAction別として、間接的なレイヤーとコードの匂いが追加されます。

MVC2 で個別にキャッシュされたコンテンツを作成した経験は何ですか? 何がうまくいき、何がうまくいかなかったのか?

0 投票する
2 に答える
3090 参照

asp.net-mvc - ASP.NETMVCの再利用可能なコンポーネント

複数のページで再利用できるようにしたい機能(一部のUIと関連機能)がWebサイトにあります。この質問の目的のために、それが「コメント」機能であるとしましょう。

私のアプリケーションにはコンポーネント用の領域があり、その領域内にはコントローラー:2/Controllers/CommentControllerつの部分ビュー:(/Views/Comment/Index.ascxコメントの一覧表示用)と/Views/Comment/Create.ascx(コメントの作成用)があります。

CommentControllerは次のようになります。

インデックス部分ビュー:

部分ビューの作成:

インデックス部分ビューは、次のRenderActionようにビューに含まれます。

部分ビュー内のフォームは、マークされたCommentsControllerのアクションに送信されるため、このコードは機能しません[ChildActionOnly](これは仕様によるものであり、ホスティングページとは別に「コンポーネント」を要求したくない)。

この「コンポーネント」アプローチを機能させるにはどうすればよいですか。つまり、ホスティングページ自体を失うことなく、ページ内のコンポーネントの状態を変更するためのフォームを送信する部分ビューを作成できますか?

編集: 明確にするために、[ChildActionOnly]ここでの使用は私の問題ではありません。アクションメソッドから属性を削除すると、コードは例外をスローしないという点でのみ「機能」します。私の「コンポーネント」は、フォームが送信されたときにまだホスティングページから抜け出します(フォームに部分ビューのURLに送信するように指示しているためです!)。

0 投票する
1 に答える
162 参照

asp.net-mvc-2 - ascxファクトリとしてのコントローラ-悪い考えですか?

*.ascxsのファクトリのようなものを作成しようとしています。

シナリオ:partialViewに渡したモデルに依存するコントロールをレンダリングしたいと思います。私はこのようなことを達成したいと思います:

FactoryController:

そのような状況に対処するためのより良い方法があるかどうか知りたいです。ASP.MVC2でWebページを作成するのは最も効率的な方法ではないと思います。

この方法が受け入れられる場合、そのようなコントローラーへのアクセスを制限するにはどうすればよいですか?このクラスをサーバー側でのみ、ascxsのページでのみ使用したい

0 投票する
1 に答える
726 参照

asp.net - 現在のアクションで RenderAction() を使用する際の問題

コンポーネント アーキテクチャを使用して ASP.Net MVC 2 アプリケーションを構築しています。コンポーネントには 2 つの異なるタイプがあります:部分ビューをレンダリングするコントローラー アクションが関連付けられているElementary Components と、特定のレイアウトですべての子コンポーネント (Elementary Components または Layouts) をレンダリングするLayout Componentsです。

コンポーネント ID を受け取り、適切なビューをレンダリングする汎用のRenderComponent()アクション メソッドを次に示します。

Elementary.ascxは、基本コンポーネントをレンダリングします。

現在、既存のレイアウトはVerticalLayout.ascxのみです。


問題:

3 つの基本的な子コンポーネントが関連付けられたサンプル レイアウト コンポーネントをレンダリングしようとすると、ページがレンダリングされません。一部のデバッグにより、次の問題が明らかになりました。

RenderComponent(5)レイアウト ビューをレンダリングします。レイアウトで最初の子コンポーネントをレンダリングするためHtml.RenderAction("RenderComponent", "Core", 1)に、ビューで呼び出されます。さらに踏み込んで、実際には!!RenderComponent(5)の代わりに呼び出されていることを発見しました。RenderComponent(1)

これは明らかに、レイアウト ビューのレンダリング自体の無限ループにつながります。


なぜこうなった?どうすれば修正できますか?私の階層コンポーネント アーキテクチャは ASP.Net MVC と互換性がありませんか? このようなシステムを ASP.Net MVC でどのように構築しますか?

0 投票する
4 に答える
4983 参照

asp.net-mvc - RenderActionが間違ったアクションメソッドを呼び出す

私はrenderactionに苦労しています。問題は、コントローラーで間違ったアクションメソッドを呼び出すことです。

私の「ユーザー」コントローラーには、編集と呼ばれる2つのアクションメソッドがあります。1つはget用、もう1つはpostリクエスト用です。

私の見解では、Renderactionを次のように呼んでいます。

ここで問題となるのは、GETアクションメソッドをレンダリングしたいということです。ただし(おそらくモデルにIDというプロパティも含まれているためですか?)、Renderactionは代わりにPOSTアクションメソッドを呼び出します。

これを行うための適切な方法は何ですか?重要な場合に備えて、ASP.NET MVC3RCを使用しています。

ありがとう、

エイドリアン

0 投票する
4 に答える
16610 参照

asp.net-mvc-3 - Asp.Net MVC 3 - @Html.Action は HTML をレンダリング/返さない

今日、かなり新しいプロジェクトを ViewPages から Razor に移行しましたが、すべて順調に進んでいるようです。Html.Action を使用してユーザー コントロールをレンダリングしようとしている場合を除いて、何もレンダリングされません。

だから私は Home/Index.cshtml で参照されている Shared/_Layout.cshtml ファイルを持っています

Index.cshtml には次のものがあります。

BlogsController にトラップを配置したので、それが要求されていることがわかります。また、モデルが返されていること、LatestBlogsMainPanelWidget がビュー エンジンによって検出されていること、およびいくつかのダミーの Razor 構文コードが実行されていることもわかっています。}

しかし、このファイルのプレーンな html はブラウザに届きません。他の (以前は動作していた) パーシャルも試しましたが、どちらも表示されません (ページのソースを表示すると、そこにないことが確認されます)。

@{ Html.RenderAction(...); の代用も試みました。成功せずに。@Html.Action の両側に HTML が表示されているので、Index.cshtml が正しく表示されていることがわかります。

さらに奇妙なことに、_Layout ファイルには Html.Action コマンドも含まれており、問題なく表示されます。

他に何を確認すればよいのか、パイプラインが HTML を取得していることを確認する方法がよくわかりません。誰でも助けることができますか?

ありがとう!

0 投票する
1 に答える
402 参照

c# - C# MVC.NET のネストされた RenderAction の

私のサイトで見つかったさまざまなコントローラーからのデータを表示するさまざまな「ウィジェット」を含むホームページが必要です。認証されたユーザーの役割に応じてウィジェットを表示したい。多くのウィジェットが複数のビューに表示されるため、現在のアプローチでは、各ウィジェットをビューで表します。各ロールには、複数の RenderAction 呼び出しのさまざまなウィジェット ビューで構成される独自のビューもあります。ホームページは RenderAction を呼び出して、認証されたユーザーの役割に適したビューを表示します。

質問:

1) ホームページに複数のネストされた RenderAction 呼び出しがある場合、パフォーマンスの問題はありますか?

2) 考慮すべき他のアプローチはありますか?

0 投票する
5 に答える
570 参照

asp.net - MVC2 - 各ページに一般的な LOGIC コントロール (検索/検索など) をどのように配置しますか?

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

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

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

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

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

0 投票する
1 に答える
151 参照

c# - のようなものを使用する方法はありますかRenderAction でレンダリングされる部分ビュー内で?

私の ASP.NET MVC 2 Web アプリケーションでRenderActionは、Web サイトの「フラッシュ メッセージ」領域と呼ばれるものに HTML を表示するために利用しています。Hello <%: Html.DisplayTextFor(m => m.Username) %>フラッシュ領域とは、ユーザーがログインしたときなど、前の要求に関するメッセージを含む上部近くの強調表示された領域を意味します。

私が取り組んでいる 1 つのフラッシュ メッセージは、もう少し複雑です。応答に Javascript コードのブロックを追加する必要がありますが、書籍High Performance JavaScriptscriptで推奨されているように、要素を終了</body>タグの前に配置したいと考えています。

通常のビューでは、ページの下部に要素<asp:Content ContentPlaceHolderID="FlashScriptElements" runat="server"><script> ... </script></asp:Content>を配置するために使用します。script残念ながら、でレンダリングされた部分ビューで同じことを試みると、RenderAction「コンテンツ コントロールは、マスター ページを参照するコンテンツ ページまたはネストされたマスター ページのトップレベル コントロールである必要があります」というパーサー エラーが発生します。

<asp:Content>マスターページの対応する場所にコンテンツを挿入する部分ビューで使用できるようなものはありますか?