Сантьяго прав в том, что ASP.NET MVC в значительной степени основан на соглашениях, но более подробно остановимся на нем, когда контроллер выглядит следующим образом:
public class FooController : Controller
{
public ActionResult Bar()
{
return View();
}
}
По соглашению, механизм просмотра будет искать представлениес именем Bar
в следующих местах:
~/Views/Foo
~/Views/Shared
Это легко увидеть, добавив новое действие и не добавляя представление, и вы получите этот информативный экран исключений:
The view 'Bar' or its master was not found or no view engine supports the searched
locations. The following locations were searched:
~/Views/Foo/Bar.aspx
~/Views/Foo/Bar.ascx
~/Views/Shared/Bar.aspx
~/Views/Shared/Bar.ascx
~/Views/Foo/Bar.cshtml
~/Views/Foo/Bar.vbhtml
~/Views/Shared/Bar.cshtml
~/Views/Shared/Bar.vbhtml
Аналогично, если у вас есть return View("ViewNameHere")
, он будет искать ViewNameHere
в тех же местах.
Чтобы ответить на ваш вопрос, даже если у проекта могут быть сотни представлений, а действия могут возвращать несколько представлений, если только выпереопределяя поведение механизма представления, все представления сгруппированы в соответствии с их контроллером или , размещенным в общей папке .