Мой шаблон отображения "PlanAlternate":
@model MyPlan
<div class="span4 compare-column compare-column1">
<div class="compare-row-plan">
<h3>@Model.Plan.Name</h3>
</div>
@foreach (var benefit in Model.Plan.Benefits)
{
<div class="compare-row-benefit-description">
@benefit.Description
</div>
}
<div class="compare-row-submit">
<input class="btn" type="submit" value="Apply Now" />
</div>
</div>
Мое представление, в котором используется шаблон отображения:
@model IEnumerable<MyPlan>
<div class="span9 compare-data-wrapper">
@Html.DisplayForModel("PlanAlternate")
</div>
Это вызывает исключение:
Элемент модели, переданный в словарь, имеет тип «System.Collections.Generic.List`1[MyPlan]», но для этого словаря требуется элемент модели типа «MyPlan».
ОДНАКО, если я переименую шаблон отображения из PlanAlternate.cshtml в MyPlan.cshtml и использую
@Html.DisplayForModel()
Все работает просто отлично. Можете ли вы помочь мне понять, почему это происходит?
Спасибо!
ИЗМЕНИТЬ:
Если я сделаю точно так, как описано выше, где имя файла шаблона отображения совпадает с именем модели представления, но я передам имя представления («MyPlan») в DisplayForModel, он все равно выдаст исключение!! Вызов DisplayForModel без аргументов работает. Мне это кажется очень, очень странным. Почти как ошибка, но я уверен, что это просто то, что я не понимаю.