Вам следует взглянуть на эту статью Брэда Уилсона, если вы хотите узнать больше об этом. http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2-templates-part-3-default-templates.html В основном проблема, которую вы видите, связана с этой проверкой в шаблоне отображения по умолчанию для объекта типа
ViewData.TemplateInfo.TemplateDepth > 1
Вместо звонка
@Html.DisplayForModel("ApplicationOutcome")
по вашему мнению, который вызывает другой шаблон. Положить
foreach(var item in Model)
{
@Html.DisplayFor(m=>item)
}
по вашему мнению напрямую. Это должно дать вам ожидаемый результат.
Ниже приведены мои MVC Controller / Model / View файлы. Можете ли вы попробовать с этим. У меня нет файлов шаблонов, специфичных для модели, которая является ключом. Что произойдет, mvc будет использовать шаблон по умолчанию для визуализации этого объекта.
DefaultController.cs (контроллер)
public class DefaultController : Controller
{
//
// GET: /Default/
public ActionResult Index()
{
var model = new List<Applicant>();
model.Add(new Applicant{FirstName = "foo",LastName = "bar", Address = "Foo Bar"});
model.Add(new Applicant { FirstName = "foo1", LastName = "bar1", Address = "Foo1 Bar1" });
model.Add(new Applicant { FirstName = "foo2", LastName = "bar2", Address = "Foo2 Bar2" });
return View(model);
}
}
Application.cs (модель)
public class Applicant
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
}
Index.cshtml (просмотр)
@model IEnumerable<MvcApplication1.Models.Applicant>
@{
Layout = null;
}
<html>
<head>
<title>this is a test</title>
</head>
<body>
<h1>This is a test</h1>
@if (Model != null)
{
foreach (var item in Model)
{
@Html.DisplayFor(m => item)
<br/>
}
}
</body>
Результат вывода