Бритва со мной шутит. У меня есть частичное представление:
@model ManageMvc.Models.Default.Classes.MvcModule
@{
if (Model.CanExpand)
{
Response.Write("Crazy");
@:TEST
<text>ojiiojjiojiojiojiojiojiojio</text>
Response.Write("Crazy2");
}
else
{
Response.Write("Crazy");
@:TEST
<text>ssssssssdffffffff</text>
Response.Write("Crazy2");
}
}
Это называется так:
@if (Model.Modules.Count > 0)
{
for (var i = 0; i < Model.Modules.Count; i++)
{
Html.Partial("~/Views/UserControls/_MenuItem.cshtml", Model.Modules[i]);
}
....
}
Я ожидал, что бритва распечатает то, что написано внутри блока Text и блока @ :. Но я ничего не понимаю. Когда я запускаю это, он просто печатает CrazyCrazy2 (для каждого модуля в списке).
Я что-то пропустил?
Обновлено
Код, который вызывает if (Model.Modules.Count> 0), сам является частичным. Этот вызывается со страницы макета. Таким образом, верхний код - это вторая частичная функция. Может ли это иметь какое-то значение?
Макет -> Главное меню (частичное) -> СоздатьMenuItem (частичное)
Обновлено
Это новый код: (_MenuItem.cshtml внутри Shared-> DisplayTemplates)
@model ManageMvc.Models.Default.Classes.MvcModule
@{
if (Model.CanExpand)
{
@:TEST
<text>ojiiojjiojiojiojiojiojiojio</text>
}
else
{
@:TEST
<text>ssssssssdffffffff</text>
}
}
Частичное представление MainMenu, которое вызывает пункт меню:
@Html.DisplayFor(x => x.Modules, "_MenuItem")
Теперь это разрывается на этой строке, и я получаю следующую ошибку:
Элемент модели, передаваемый в словарь, имеет тип 'System.Collections.Generic.List`1 [ManageMvc.Models.Default.Classes.MvcModule]', но для этого словаря требуется элемент модели типа 'ManageMvc.Models. Default.Classes.MvcModule.