問題タブ [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 - Html.RenderAction() と似ていますが、コントローラー オブジェクトを再インスタンス化しません。
RenderAction
オブジェクトの拡張メソッドを使用してHtmlHelper
、サイドバーなどをページにレンダリングするのが好きです。これにより、そのような各部分のデータ アクセス コードをコントローラーの個別のメソッドに保持できるからです。抽象コントローラー ベースを使用して、既定の "サイドバー戦略" を定義できます。これは、必要に応じて具象コントローラーでメソッドをオーバーライドすることで改良できます。
私がこのアプローチで抱えている唯一の「問題」は、RenderAction
既に実行中のコントローラーからのアクションをレンダリングする場合でも、常にコントローラー クラスのニュース インスタンスを作成するように構築されていることです。私のコントローラーの中には、メソッドでデータ検索を行うものがありますが、ビューでメソッドInitialize
を使用するとRenderAction
、同じリクエストでこれが数回発生します。
RenderAction
呼び出されるアクションメソッドが「親」アクションと同じコントローラークラスにある場合、コントローラーオブジェクトを再利用する代替手段はありますか?
asp.net-mvc - asp.net MVC RenderAction コーディネーター
ASP.NET MVC 2 ベータ版の RenderAction() メソッドを見ています。とても気に入っていますが、非同期コントローラーを使用できないようです。呼び出されるすべてのアクションを把握し、データをキャッシュし、呼び出されたアクションにデータが既に存在することと、それを取得するために呼び出す必要があることを知らせることができる「コントローラー」の例を誰かが持っていますか?
ここに既に投稿されている q のほとんどは、MVC 1 以前のプレビューを参照しています。
asp.net-mvc - MVC で別の子ビューをレンダリングするにはどうすればよいですか?
私は MVC を扱うのが初めてなので、何も知らないと思い込まないでください。
私は、MVC で既に多くのことが書かれているプロジェクトを取り上げており、それにいくつかのことを追加しようとしています。
1つのビューに線があります
Image ディレクトリの下に List.ascx が表示されます。View Controller に List メソッドが表示されます。
その list メソッドの結果を別の ascx ファイルにレンダリングしたいと思います。(AssignImage.ascx) コントローラーに別のメソッドを追加できることはわかっていますが、同じメソッドを別のビューで使用する方法が必要なようです。
asp.net-mvc - レンダリング アクション return View(); フォームの問題
私はMVCが初めてなので、ご容赦ください。:-)
強く型付けされた「ストーリー」ビューがあります。このビュー (ストーリー) にはコメントを付けることができます。
コメント コントローラー "ListStoryComments" と "CreateStoryComment" の 2 つのビュー (部分ビューではない) を作成しました。これらのビューは、RenderAction を使用して Story ビューに含まれます。
(関連するコメントを一覧表示するためにストーリー ID を渡します)。
フォームを使用して新しいコメントを投稿すると、現在の (親) ビューが返されますが、コメントフォームフィールドには最後に入力したコンテンツが表示され、ListStoryComments ビューは更新されません。新しいストーリーを表示します。
基本的に、ブラウザの戻るボタンを押したかのように、ページはキャッシュから読み込まれます。f5 を押すと、フォームを再投稿しようとします。ページを手動で再読み込み (ブラウザーのアドレス バーに URL を再入力) してから f5 キーを押すと、新しいコンテンツと空のフォーム フィールドが表示されます。これが目的の結果です。
完全を期すために、私の CreateStoryComment アクションは次のようになります。
asp.net-mvc - RenderActionはフォームで使用する必要がありますか?
私のセットアップ:
- 次のようなルートを表示します。
/Pages/Details/2
- ページ詳細ビューは
<% Html.RenderAction("CreatePageComment", "Comments"); %>
コメントフォームをレンダリングする必要があります - コメントフォームの投稿
Comments/CreatePageComment
/Comments/CreatePageComment
RedirectToAction
コメントが正常に作成されたときに返されます- これはすべてうまく機能します
私の質問:
/Pages/Detail/1
検証エラーが発生した場合、コメントフォームに戻ってエラーを表示するにはどうすればよいですか?
- を使用する場合
RedirectToAction
、検証は難しいようです。単に返すのではなく、検証エラーにPost-Redirect-Getパターンを使用する必要がありますか? - 戻る
View()
と、CreateComment.aspx
ビューを表示するようになります(検証は行われますが、白いページのフォームだけです) 。/Pages/Details/2
を呼び出したルートではありませんRenderAction
。
PRGパターンを使用する必要がある場合は、PRGを使用しながら検証を行う方法を学ぶ必要があると思います。そうでない場合、そして私にはこれを返すことでより適切に処理できるように思われますView()
が、を使用しているときにユーザーを初期ビューに戻してフォームエラーを表示する方法がわかりませんRenderAction
。
これは、頭を軽くたたくと同時に腹をこするゲームのように感じます。私もそれが苦手でした。私はMVCを初めて使用するので、ここで問題が発生する可能性があります。
asp.net-mvc - Asp.Net Mvc - RenderAction - リスト ビューで作成する
編集
ソリューションを共有サイトに掲載しました。そのように、あなたは私が話していることを見ることができるでしょう。ここからダウンロードできます: http://www.easy-share.com/1909069597/TestRenderAction.zip
テストするには、プロジェクトを開始し (作成フォームを空にして)、[作成] ボタンをクリックします。あなたは何が起こるかを見るでしょう。
これは単なるサンプル プロジェクトです。今のところ、オブジェクトをデータベースに永続化する必要はありません。私は自分の例をうまく機能させたいと思っています。
私は次のコントローラーを手に入れました:
次のモデル:
My Product/List.aspx :
私の製品/Create.ascx:
問題は、作成ボタンを押してエラー (空のフィールドなど) が発生したときに、戻りビューが Create.ascx コントロールのみを返すことです。エラーのある Create.ascx コントロールの Product/List.asxp ページが返されません。それが私が望むことです。
その問題をどのように解決できるか考えていますか?
Asp.Net Mvc 1 を Asp.Net Futures (Html.RenderAction を持つ) と共に使用します。
jquery - jqueryタブのASP.NET MVC動的RenderActions
わかりました、そのタイトルは口いっぱいです...しかし、私がやろうとしていることを理解していただけると思います。
jquery タブ コントロールを含むページがあり、モデルをループしてさまざまなタブをレンダリングします。現在、div (これらのタブに「リンク」されている) も同じループで作成されます。したがって、これらのタブに接続された等しいタブ + div があります。
問題は、最初の RenderAction が呼び出されるだけで、他のすべてがまったく同じであることです。
renderactions をループするコード:
したがって、各 div には「domain_NUMBER」という ID があり、もちろん番号はループされます。そして、renderaction は、「domainid」パラメーターを受け取るコントローラーで「DomainView」アクションを呼び出します。
楽観的にはこれでうまくいくと思っていましたが、間違っていると思います...
model-view-controller - ActionFilterAttribute:「キャンセル」プロパティはどこにありますか?
ActionExecutingContextのCancelプロパティはどうなりましたか?ActionFilterAttributeを使用するときにRenderActionを中止するにはどうすればよいですか、それともこの猫の皮を剥ぐ別の方法はありますか?
上記のコードは、OnActionExecuting操作を終了しても、適用されたアクションを実行し続けますか?
---元の投稿へさらに: 以下の回答に感謝しますが、コンテキストを十分に明確にしたとは思いません。次の呼び出しを無効にしようとしています。
ユーザーが認証されていない場合、このアクションは何も返さないはずです。ビューに「if」ブロックを簡単に配置できますが、ルールをコントローラーに保持したいと思います。
asp.net-mvc - パラメータは RouteData で問題ありませんが、コントローラで null として渡されました
私は MVC を始めて数週間になりますが、毎日、何か新しいものが現れて、かなり奇妙に感じます。だから、私は自分が直面している問題への答えを見つけようとします。それにもかかわらず、現在の問題については、ここでスタックオーバーフローで、またはグーグルでそのことについてのどこにも降下の答えが見つからないようです...
HTML.RenderAction メソッドを使用してコントローラーにパラメーターを渡す際に問題が発生しています。何らかの理由で、パラメーターは RouteData で正しく終了しますが、「関数パラメーター」は null です。ルーティング マップに関係していると思うので、ここに投稿してさらに情報を提供したいと思います。
私のルートマップ(とりわけ、現在のアクションがこのルートを使用していることはわかっています):
私のコントローラーアクション:
RenderAction 呼び出し:
もちろん、「4」は現在ハードコードされた値であり、そこにある foreach ループを含むオブジェクトの ID になります。
さて、この結果、コントローラの「int id」は NULL ですが、RouteData を「QuickWatching」すると、キーと値のペア「id,4」が確実に含まれています...
asp.net - Html.ActionLink() は、Html.RenderAction() 内で使用すると空のリンクを提供します
ビュー(「Foo.aspx」)に次の行が含まれるアクション「Foo」を含むMicrosoft MVCプロジェクトがあります。
これを Web ブラウザーからヒットするか、AJAX 呼び出しからロードすると、次のように正しく返されます。
しかし、次のように別のビューからアクションを呼び出すと:
次に、リンクはターゲットなしでレンダリングされます。
なぜこれが起こるのでしょうか? また、どうすれば回避できますか?