У меня возникла проблема с настраиваемым шаблоном отображения в приложении MVC 5. У меня есть viewmodel, который содержит сложный тип, который я хотел бы использовать повторно. Я создал папку DisplayTemplates и разместил частичное представление, которое следует правильному правилу именования. Кажется, что все работает правильно, и частичное представление вызвано, но в браузере ничего не отображается.MVC DisplayFor Not Rendering
Я проверил вынесенный html, чтобы убедиться, что он не скрывается или отображается смешно, но буквально ничего не отображается в выходе html. См. Ниже соответствующие скриншоты. Что я делаю не так? Благодарю.
Структура папок
Вот первоначальный вид. В viewmodel есть список AvailableOption. Еогеасп называет 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 для сложный тип
Вот Результирующие ОКАЗАННЫХ HTML
Я создал небольшой тестовый проект, который воспроизводит ошибку, если кто-то хочет посмотреть. Sample Project
1) Какие виды вы показываете нам здесь? 2) Включили ли вы объявление '@model IEnumerable '? 3) Переместите папку в папку «Views/Shared/DisplayTemplates». –
Jasen
Является ли второе изображение контентом для вашего шаблона отображения? Кроме того, попробуйте опубликовать реальный код, чем изображения. – Shyju
Почему вы размещаете подпапку внутри папки «Просмотр дома», если вы делаете это, вам нужно создать определение маршрута для этого, я бы предложил избежать этого. –