アプリケーションは、RAZOR ビュー エンジンを使用した MVC3 アプリケーションです。
ここで使用されているコントローラーは TestController です。ネストされたビューを使用しています。
Base view(Item Listing)はこんな感じで、
//Listing.cshtml
@model ItemsList
@for (int i = 0; i < Model.Items.Count(); i++)
{
@Html.DisplayFor(x => x.Items[i], new { RowPosition = i})
}
アイテムのテンプレートはこちら
//Item.cshtml
@model Item
@Html.DisplayFor(x=>x.HeaderText)
@Html.DisplayFor(x=>x, "ItemDetails")
そして、ここにアイテムの詳細のビューがあります
//ItemDetails.cshtml
@model Item
@Html.DisplayFor(x=>x.Description)
そのため、モデルを ITEM テンプレートから ITEMDETAILS テンプレートに転送しようとしています。ItemDetails.cshtml は、"Views\Test\DisplayTemplates" の下に配置されます。実際、「Views\Shared」フォルダーと「Views\Shared\DisplayTemplates」フォルダーの下に配置しようとしました。しかし、Viewエンジンはそれを拾っていないようです。
ただし、Microsoft のドキュメントでは、ビュー エンジンが Controller\DisplayTemplates フォルダーを調べて、使用されている TemplateName を使用して VIEW を取得すると述べています。