Это не MVC, это ближе к классическим шаблонам ASP
Выберите, в каком лагере вы хотите находиться, и оставайтесь там
Чтобы использовать MVC, вам нужно создать ViewModel, которая выражаетМодель с точки зрения конкретного назначения рендеринга
Ваш ViewModel должен быть построен с использованием только логических команд сверху.то есть
if (Model == null)
{
x = ViewData.ModelMetadata.NullDisplayText
}
else
{
foreach (var prop in ViewData.ModelMetadata.Properties.Where(pm => pm.ShowForDisplay && !ViewData.TemplateInfo.Visited(pm)))
{
if (prop.HideSurroundingHtml)
{
x.Items1.Add(prop.PropertyName));
}
else
{
prop.GetDisplayName()
if (prop.AdditionalValues.ContainsKey(SomeAttributeIWantToDetectAttribute))
{
x.Items2.Add( { Text = prop.zzz, Highlight = true} ));
}
else
{
x.Items2.Add( { Text = prop.PropertyName } ));
}
}
}
}
Код выше, очевидно, неверен, я просто пытаюсь показать, что вы должны взять сложный код и логику и использовать его для построения ViewModel, он никогда не должен быть в представлении
ViewModel имеет простую конструкцию, относящуюся к используемой вами технологии рендеринга (например, атрибуты html и т. Д.)
Представление должно просто содержать простые итераторы и селекторы макетов, передаваемые из ViewModel, а не фактическую модель