MVC 5 アプリケーションのカスタム表示テンプレートに問題があります。再利用したい複合型を含むビューモデルがあります。DisplayTemplates フォルダーを作成し、正しい命名規則に従って部分ビューを配置しました。すべてが正しく機能しているように見え、部分ビューが呼び出されますが、ブラウザには何も表示されません。
レンダリングされた html をチェックして、非表示になったり、おかしく表示されたりしていないことを確認しましたが、html 出力には文字通り何もレンダリングされていません。関連するスクリーンショットについては、以下を参照してください。私は何を間違っていますか?ありがとう。
フォルダ構造
これが最初のビューです。ビューモデルには AvailableOption のリストがあります。foreach は displayfor を呼び出します
@model CustomerWebPortal.ViewModels.OrderVehicle
@using (Html.BeginForm("CreateOrder", "Home"))
{
<h2>@Html.DisplayFor(x => x.DisplayName)</h2>
<div class="description">
<ul>
@Html.Raw(Model.Description)
</ul>
</div>
<h3>Available Options</h3>
<hr />
<div>
@foreach (var option in Model.AvailableOptions)
{
Html.DisplayFor(x => option, "AvailableOption");
}
</div>
<h3>Customer</h3>
<hr />
<div class="customerInfo">
@Html.LabelFor(x => x.Customer)
@Html.TextBoxFor(x => x.Customer)
@Html.ValidationMessageFor(x => x.Customer)
</div>
<div class="actions">
<input type="submit" value="Place Order" />
</div>
@Html.HiddenFor(x => x.VehicleId)
@Html.HiddenFor(x => x.Price)
}
複合型の部分図を次に示します。
@model CustomerWebPortal.ViewModels.AvailableOption
<div class="row-fluid padtopbottom5">
<div class="span6">
<div class="row-fluid">
<div class="span4">
@Html.CheckBoxFor(x => x.Selected)
</div>
</div>
</div>
<div class="span6">
<div class="row-fluid">
<div class="span4">
<h3>@Html.DisplayFor(x => x.DisplayName)</h3>
<ul>
@Html.Raw(Model.Description)
</ul>
<p><strong>@Html.DisplayFor(x => x.Price)</strong></p>
</div>
</div>
</div>
</div>
複合型の displayfor を呼び出す foreach は次のとおりです。
レンダリングされた HTML の結果は次のとおりです。
誰かが見たい場合は、エラーを再現する小さなテスト プロジェクトを作成しました。サンプルプロジェクト