MVC的默认约定

MVC项目中有不少默认约定,一种是对项目目录分配的约定,好比默认状况下须要将Javascript文件放置在Script文件夹中,但这并不妨碍你将这个文件夹从新命名,也能够将整个文件夹放置到任何想要放置的地方,并不会影响程序的正常运行。另一种就是要遵循所谓的惯例优先原则(principle of convention over configuration),对于不少项目来讲,严格听从已有惯例和使用合理的缺省选项大概是这些项目须要的,这意味着,若是创建了一套命名规范,诸如此类,就能够显著地减小系统所需配置项目的数量, 来创建处理器映射、视图解析器、ModelAndView实例,等等。 这为快速原型开发提供了很大方便。同时提供了必定程度的(一般是好事情)代码库的一致性,进而能够从中选择并发展为成型产品。html

----有关控制器类的规范约定并发

  • 控制器类名必须以Controller结尾;例如ProductController
  • 项目中引用控制器时,例如使用HTML helper方法时,只须要指定前半部分的名称;例如Product;
  • 能够经过实现IControllerFactory接口建立定制的约定,虽然不必这样作;

----有关视图的约定框架

  • 视图或分部视图要放置在/Views/Controllername文件夹中,好比一个与ProductController类相关的视图应放置在/Views/Product文件夹中;
  • MVC框架但愿一个action方法的默认视图应该以方法名进行命名,好比一个List方法的视图应该命名为List.cshtml。因为List方法位于ProductController类中,则默认的视图应该是/Views/Product/List.cshtml.
  • 若是在action方法中直接调用return View(); 则显示默认视图;若是显示其余指定视图,则须要在action方法中调用return View("MyOtherView"); 
  • MVC框架搜索视图路径的默认顺序是:先在/Views/Controlloername/文件夹下查找,若是没有找到,就在/Views/Shared/文件夹下查找,仍未找到,则报错;

----有关布局的约定布局

  • 布局文件须要在文件加“_”前缀,而且放置在/Views/Shared文件夹下,默认状况下除了空项目模板都使用_Layout.cshtml做为布局模板,而且在/Views/_ViewStart.cshtml下进行调用。
  • 若是想用指定的布局替代,则修改_ViewStart.cshtml:
@{
            Layout="~/Views/Shared/MyLayout.cshtml";
}
  • 或者想禁用布局,则修改_ViewStart.cshtml:
@
{
       Layout=null;     
}
相关文章
相关标签/搜索