最近刚开始学习asp.net的mvc开发,对action与view的约定关系一直不是很理解,于是自己写了个小程序验证一下。
1,一个controller对应view文件夹中的一个目录。
例如,demoController对应demo文件夹
![](https://i-blog.csdnimg.cn/blog_migrate/130722893ec98162c06daca5395d011d.png)
2,action与view文件夹中页面文件的关系
2.1 不是要求每个action都必须要存在对应的页面
例如,index与index2都有对应的.cshtml文件, 而index3不存在对应的view
![](https://i-blog.csdnimg.cn/blog_migrate/21059da463989a4ef7369b688653cef5.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f36213f1b644a13040619d1acfcb16f4.png)
2.2 action默认提交到对应的页面
asp.net中默认controller选择的页面是action对应的cshtml文件。index选择默认view,程序不会出错。
![](https://i-blog.csdnimg.cn/blog_migrate/0b46b9bcd2b888f325d57c10e6e0817c.png)
如果index3选择默认view,程序会报错。
![](https://i-blog.csdnimg.cn/blog_migrate/b3231e771fb8ebad44d2d0fef7936f77.png)
2.3 action中可以指定跳转到指定页面
index2可以选择默认的view,也可以选择index.cshtml用于显示。index3由于没有默认view,所以只能选择其他view,例如 index2.cshtml
![](https://i-blog.csdnimg.cn/blog_migrate/aaed788316f42818fc2838df92d244fc.png)
总结:
1, 一个controller对应view文件夹中的一个目录
2, 不是要求每个action都必须要存在对应的页面
3, action默认提交到对应的页面
4, action中可以指定跳转到指定页面
个人愚见,仅供参考