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

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

  • 控制器类名必须以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;
}

最新文章

  1. 在 Linux 上配置一个 syslog 服务器
  2. 实现UniqueAttribute唯一性约束-优化版
  3. Vector & ArrayList 的主要区别
  4. python学习笔记-day4笔记 常用内置函数与装饰器
  5. MyISAM 存储引擎
  6. 安装Oracle11后在SQL Developer启动时提示:enter the full pathname for the java.exe
  7. SE 2014年3月31日
  8. 【POJ】2348 Euclid's Game(扩欧)
  9. LeetCode(32)-Binary Tree Level Order Traversal
  10. Flutter & Dart 安装在window系统
  11. [BigData - Hadoop - YARN] YARN:下一代 Hadoop 计算平台
  12. Linux中盘符的两种挂载方法
  13. hadoop第一部分-安装、测试
  14. TC-572-D1L2 未完!待续!
  15. FMXUI
  16. 【转】Mac下升级python2.7到python3.6
  17. 8个PHP数组面试题
  18. linux sed命令详解-乾颐堂CCIE
  19. lintcode-141-x的平方根
  20. JavaWeb---总结(十九)Session机制

热门文章

  1. 2018.09.07 bzoj1911: [Apio2010]特别行动队(斜率优化dp)
  2. c语言中几个常见的库函数strlen、strcmp、strcat、strcpy、strncpy、memset、memcpy、memmove、mmap
  3. myeclipse新建jsp文件时弹出默认模板,怎么改成自己修改后的
  4. 一种基于Redis的10行代码实现IP频率控制方法
  5. mac下svn无法上传.a文件的问题
  6. MySQL Yum存储库 安装、升级、集群
  7. HDU2577 How to Type 2016-09-11 14:05 29人阅读 评论(0) 收藏
  8. 解决Redis/Codis Connection with master lost(复制超时)问题
  9. [LeetCode] Binary Tree Maximum Path Sum(最大路径和)
  10. 一起学习MVC(3)Views的学习