問題タブ [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.
asp.net-mvc-2 - BaseController にコンテンツ アクセス ロジックを配置することは良い考えですか?
私は ASP.NET MVC アプリケーションを開発しています。このアプリケーションでは、任意のページのコンテンツをデータベースから取得して (存在する場合)、ページに表示できます。
これは、非技術者がソース コード (ビューなど) にアクセスして変更することなくコンテンツを編集できるようにするためです。
私がこれを行っている方法は、各コントローラーがベースコントローラーから派生することです。ベース コントローラーは 'OnActionExecuted' をオーバーロードし、この機会を利用して、現在のアクション/コントローラーに割り当てられているコンテンツを取得します。
アクションが「ContentViewModel」から派生した ViewModel を返す場合、ViewModel の「Text」プロパティにデータベースからのテキストを設定します。
そして、テキストはビューによってレンダリングされます。
このデザインの弱点が見えますか?
基本コントローラーを使用するよりも、ビューから呼び出すコンテンツをプルするための HtmlHelper 拡張機能を使用した方がよいでしょうか?
私がこれを尋ねている理由の 1 つは、独自のベース コントローラーを使用すると、指定されたコントローラーが「System.Web.Mvc.Controller」から直接継承されることを期待しているように見える「Html.RenderAction」の呼び出しに干渉するように見えることです。
redirect - RenderAction呼び出し間のViewDataの維持
サイトのすべてのページで、Html.RenderActionを使用して一般的なログインフォームをレンダリングしています。
ユーザーがテキストボックスに詳細を入力して[送信]をクリックすると、ログインを処理するコントローラーにPOSTが実行されます。
無効な電子メールアドレスを入力するなどの間違いを犯した場合、ModelStateにエラーメッセージが表示され、以前のページにリダイレクトされます。
問題は、RenderActionが個別のリクエストとして発生するため、ViewModelが失われることです。
TempDataに入れても、TempDataは個別のリクエストごとにフラッシュされるため、失われます。
連続するHtml.RenderAction呼び出し間でデータを保持する方法はありますか?
そうでない場合、これをハックする方法についての提案はありますか?(データをセッションに入れる必要がありますか?)
c# - コントローラー基本クラスの作成 (部分)
私の@html.render
アクションは開発サーバーと製品サーバーをクラッシュさせるため、 partials(crap)を使用する必要があります。
すべてのビューに必要なデータを設定できるようにクラスを作成しようとしましpublic partial controller{}
たが、運がありません (すべてが壊れます)。
私はLAMP cakePHPのバックグラウンドから来ており、本当にシンプルさが必要です。
部分ベース コントローラ (通常のベース コントローラをオーバーライドしない) を作成する方法と、クラスから複数のモデルにアクセスする方法を知る必要があります。
ありがとうございました!
jquery - ツリーを使用した ASP.NET MVC - パターン
これらの製品に含まれる製品と部品の基本的な CRUD 機能を備えた ASP.NET MVC アプリケーションのスケルトンを準備しています。アプリケーションには、MasterPage に基づいて厳密に型指定されたビューがいくつか含まれており、メニュー ツリーを表示するウィジェットを追加したいと考えています。このメニュー ツリーは製品/パーツ構造を反映するため、メイン ウィンドウに表示されるコンテンツに関連しています。
フォーラムを検索したところ、ツリー レンダリングのさまざまな方法を見つけ、アプリケーションに新しいウィジェットを含めることができました。
- jquery.treeview - 見栄えの良いツリーを提供しますが、アプリケーションでそれをどのように使用 (ビルド、レンダリング、ビューに渡す) できますか?
- RenderPartial、RenderAction など - 非常に明確なように見えるので、RenderAction メソッドを使用してウィジェットをマスター ページに含めようとしましたが、ツリーを作成/レンダリングして表示するにはどうすればよいですか?
- HtmlHelper を拡張して新しい Html.RenderTree メソッドを作成します (良い例: http://www.matthidinger.com/archive/2009/02/08/asp.net-mvc-recursive-treeview-helper.aspx )
おそらく、見つかった例のいくつかの断片をマージする必要がありますが、ASP.NET MVC テクノロジに慣れていないため、そのような場合の最適なパターンについてはわかりません。
任意のヘルプ (提案、パターン、良い例を示すなど) をいただければ幸いです。
ありがとう
ディオルク
asp.net-mvc - RenderAction - 親に影響を与えずに使用する
ビューが Html.BeginForm() を持つアクション メソッドで RenderAction をパラメーターなしで呼び出すと、フォーム アクションは親 URL に従います。
パラメータ (ルート値、アクションなど) を追加すると、フォームのアクション属性が MyChildContorller のコントローラー名とアクションに置き換えられます。
親URLに影響を与えずにRenderActionを使用するには?
asp.net-mvc - RenderAction() を使用してサブコントローラー アクションにポストバックする
RenderAction()
(を返す)を使用してサブコントローラーアクションもレンダリングする親ビューがありますPartialView
。例は、ログインの部分ビューを含むフロント ページです (入力: ユーザー名、パスワード、記憶、およびアクション: login )
実行プロセス
- GET for - ログインがサブコントローラーを指しているログイン
Home/Index
コントロールも表示しますUser/Login
- ユーザーが資格情報を入力し、ログインをクリックします
- POST for
User/Login
- 資格情報をチェックして???を返します
問題
サブコントローラーアクションから親ビューに戻るにはどうすればよいUser/Login
ですか?
サブコントローラーの部分ビューはどのページでもレンダリングできるため、次のような親コントローラーアクションの結果を簡単に返すことはできません。
では、サブ コントローラー アクションとその部分ビューをどのように処理すればよいでしょうか?
編集
親ルートの追加データを使用してサブコントローラー アクションにポストバックすることもできますが、サブコントローラー アクションにもデータを入力します。私の例では、誰かの資格情報が無効であることを表示する必要があります。リダイレクトするとこれらが失われます...
asp.net-mvc - ASP.Net 2.0 と新しい RenderAction メソッド
最近、ASP.Net MVC プロジェクトを MVC 2.0 Preview 2 から MVC 2.0 Beta に移行したところ、MVC 2.0 Beta で新しい RenderAction メソッドが導入されたため、Html.RenderAction への呼び出しが壊れました。
次の行で:
次のエラーが表示されます。
コンパイラ エラー メッセージ: CS0121: 次のメソッドまたはプロパティの間で呼び出しがあいまいです:
「System.Web.Mvc.Html.ChildActionExtensions.RenderAction(System.Web.Mvc.HtmlHelper, string, string, object)」および「Microsoft.Web.Mvc.ViewExtensions.RenderAction(System.Web.Mvc.HtmlHelper, string,文字列、オブジェクト)'
行を次の 2 つの選択肢のいずれかに置き換えることで、問題を解決できます。
また
どちらを使用する必要がありますか?違いは何ですか? また、以前のように、名前空間全体を書き込まずに問題を解決する方法はありますか?
前もって感謝します。
asp.net-mvc - 1つのビューに複数のHttp.RenderAction()
ご存知のとおりRenderAction()
、次のいずれかの部分です。
- Asp.netMVC1先物または
- Asp.net MVC 2 Beta 2
また、アクション結果を別のビューまたは部分ビュー内にレンダリングできます。
説明
RenderAction()
ヘルパーを使用して複数の部分ビューが表示されたビューがあります。- 少なくとも2つの部分的なビューは、
<form>
おそらくHtml.BeginForm()
元のビューへのポストバックを使用してレンダリングします。 - ポストバックはAjax呼び出しでは実行されません
- ポストバックデータは、フォームPOSTで検証されます。
問題
フォームの1つがポストバックされると、もう1つは無効としてレンダリングされます。
誰かがこのパターンを使用して解決しましたか?どういうわけか、どちらform
がポストバックを実行したかを知る必要があり、その1つだけがPOSTデータを検証する必要があります。他の人は、検証を無視するか、通常のHttpVerb.Get
アクション処理を実行する必要があります。
model-view-controller - ASP.NETMVC2ベータ非同期RenderAction
バックグラウンド:
http://www.hanselman.com/blog/HanselminutesPodcast188ASPNETMVC2BetaWithPhilHaack.aspx
27:15から開始し、28:43に、RenderActionは、呼び出される非同期アクションメソッドとしてAsynchronocityの一部ではないことが議論されました。
(1.GetNews 2.GetWeather 3.GetStockを非同期的に呼び出すホームポータルインデックスアクションがあるとします。同じビューにユーザーの最近の投稿を表示するRenderActionがあります。(GetUserRecentPosts))
質問
RenderActions自体が非同期の場合はどうなりますか?
GetUserRecentPostsは、ホームインデックスがアクションを完了した後にのみ呼び出されますか?
RenderActionsは、デフォルトでビューに非同期でレンダリングする必要がありますか?
asp.net-mvc - SparkViewEngine、RenderAction、ASP MVC 2 ベータ版のエリア?
MVC 2 Beta を使用して、Spark の AreaDescriptionFilter で問題が発生しました。
次の行は、私の Application.spark ファイルからのものです。これにより、ビュー エンジンはビューの可能なすべての場所を検索します (「シェル」領域のフォルダーを除く)。
# Html.RenderAction("ShowMainMenu", "Navigation", new { area = "Shell" });
を使用して同じアクションをhttp://localhost/Shell/Navigation/ShowMainMenu
実行すると、正常に実行され、領域のビュー ディレクトリが期待どおりに認識されます。
これを修正する方法はありますか?