2つのデータベースエンティティを表す必要があり、それらを1つのページに出力する必要があります。
私はこのようなものを持っています
ビューDefビューAビューBテストビューC
ViewCに、ViewBを表示するViewAを表示させたい。
今私はこのようなものを使っています:
// View C
<!-- bla -->
<% Html.RenderPartial(Url.Content("../Definition/DefinitionDetails"), i); %>
// View A
<!-- bla -->
<% Html.RenderPartial(Url.Content("../Definition/DefinitionEditActions")); %>
これを行う方が良いですか?相対パス名でリンクすると、やけどをする可能性があることがわかりました。任意のヒント?
万が一私が何かを作ることができる...
Html.RenderPartial( "Definition"、 "DefinitionDetails"、i); ?
助けてくれてありがとう
これは私にとってはうまくいきます!
@Html.Partial("~/Views/NewsFeeds/NewsFeedPartial.cshtml")
次のように、フルパスでビューを参照できます。
Html.RenderPartial("~/Views/Definition/DefinitionDetails")
さらに良いのは、 T4MVCライブラリ を使用することです。これにより、上記が実行され、(準)強く型付けされます。任意のコントローラーまたはビューから任意のビューを参照できます。次のように使用します。
Html.RenderPartial(MVC.Definition.Views.DefinitionDetails)
または
Html.RenderPartial(MVC.Definition.Views.DefinitionDetails, myModel)
正確に機能するオプションを明確にするために:
以下の例では、cshtmlファイルを想定しています。
RenderPartial
を使用します。// This looks in default view folder, then shared, checking for .aspx, .cshtml etc
Html.RenderPartial("DefinitionDetails");
// This looks in specified path and requires the extension
Html.RenderPartial("~/Views/Definition/DefinitionDetails.cshtml");
Partial
を使用します。// This looks in default view folder, then shared, checking for .aspx, .cshtml etc
@Html.Partial("DefinitionDetails")
// This looks in specified path and requires the extension
@Html.Partial("~/Views/Definition/DefinitionDetails.cshtml")
注:どうやらRenderPartial
はPartial
よりも少し高速ですが、完全にパスされた名前の方がMVCでファイルを検索するよりも高速であることも期待しています。
ループでパーシャルを作成している場合(つまり、ビューモデルのコレクションから)、特定のビューモデルをパススルーする必要がある可能性があります。
@foreach (var group in orderedGroups)
{
Html.RenderPartial("~/Views/ControllerName/ViewName.cshtml", group);
}
私はプロジェクトでこれらすべてを行う必要があり、マークされた回答が少し誤解を招くのを見つけました。
パーシャルを共有フォルダにコピーできませんでしたか?
<% Html.RenderPartial("DefinitionDetails", i); %>
および
<% Html.RenderPartial("DefinitionEditActions"); %>