ASP.NET MVC 3- @html.actionはhtmlをレンダリング/返信しません
-
08-10-2019 - |
質問
私は今日、かなり新しいプロジェクトを視聴からレイザーに移動してきましたが、すべてが順調に進んでいるようです。 html.actionを使用してユーザー制御をレンダリングしようとしている場合がありますが、何もレンダリングしません。
そこで、home/index.cshtmlで参照されている共有/_layout.cshtmlファイルがあります
index.cshtmlには次のものがあります。
<article>
@Html.Action("LatestBlogsMainPanelWidget", "Blogs")
...
</article>
BlogScontrollerにトラップを入れたので、それが要求されていることを知っています。また、モデルが返され、最新のBlogsmainPanelWidgetがビューエンジンによって見つかっていることも知っています。 }
しかし、このファイルのプレーンHTMLはブラウザに登場していません。私は他の(以前に作業している)部分的な部分も試しましたが、どちらも表示されません(ページのソースを表示してください。
また、 @{html.renderaction(...)の代替を試してみました。 }成功せずに。 HTML @html.actionの両側が表示されているため、index.cshtmlが適切に表示されていることがわかります。
さらに奇妙なことに、_layoutファイルにはhtml.actionコマンドがあり、それらは 行う うまく見えます。
他に何を確認するのか、パイプラインがHTMLを取得していることを確認する方法は本当にわかりません。誰かが手伝うことができますか?
ありがとう!
解決 3
脳は面白いものであり、昨日これに数時間を費やしたにもかかわらず、私の犬は夜中に私を目覚めさせて、潜在意識が答えにつまずくために私を目覚めさせました。
これが他の誰かが困惑していたら、私は驚かない。スティーブ・サンダーソンが設計したものと同様の部分レベルのキャッシングシステムを使用していることは、私に気付いていなかったので、私は言及していませんでした。私の知る限りのカミソリページがWebFormページよりもはるかに少ないパイプライン処理を経るので、これが原因になる可能性があることは突然私を襲った。キャッシュフィルターは、おそらく必要なことをしていない、または適切なタイミングで行うことはありません。
問題のアクションに関するOutputCacheフィルターをコメントすることで問題が解決したことを確認しました。
この問題がページレベルのキャッシュに当てはまるかどうかはわかりません。
他のヒント
部分ビューにレイアウト= nullを置くと、正常に動作します。
これを試して:
@{html.renderaction( "raptogblogsmainpanelwidget"、 "blogs");}
この問題のソリューションを検索している間、html.actionとhtml.renderactionの適切なレンダリングではない3つの測定問題を見つけました。以下のことを適切に行っているかどうかを確認してください。
- PartialViewまたはビューで定義しました @{layout = null;}.
- 返品を使用します PartialView それ以外の 意見 .
- あなたの行動を飾ります ChildActionOnly 属性。
すべての手順を適用することで、問題を解決できることを願っています。