起初认为视图,控制器,模型它们是完全没有耦合的,真正用了一段时间MVC发现错了。
但通过抽象让他们完全没有耦合,也不是不可能。
1.奇怪的连接地址
用MVC之前,一直认为页面必然访问某个文件。用了MVC发现原来访问目录也可,甚至多个部分视图组合成一个页面。
甚至是各种想不到的路径组合方式
MVC4可以在vs属性里设置目录页,指定入口地址
MVC5在APP_Start/RouteConfig下,配置路由设置,配置入口地址,和入口控制器
views/xxx 对应控制器名,如果和控制器名不一致会报错
2.cshtml
不知道aspx是不是它的前身,刚使用cshtml的时候一直纠结没有视图编辑界面,只能纯代码编辑。而aspx是有的。
不过后来发现DreamWeaver cs5里面是有aspx创建选项的,估计最新版也有cshtml创建选项把。
关于cshtml的执行顺序有点头疼,html标签代码和c#代码好像不是一起执行的,如果写了for循环之类的,执行顺序会很奇怪。
3.ajax,部分视图
ajax一定要引用对文件。。否则没有效果,具体引用啥文件,这里有写
http://www.cnblogs.com/FEAUOR/p/3217221.html
说说部分视图,经常用ajax+部分视图来做一些下拉的效果,如果让部分视图出现的部分消失,只要用content("")返回就行了。
4.TempData和Session
视图和控制器的数据交互,用TempData就行了。Session和普通Session一样用。
静态变量是真正运行在服务器上的,我一开始尝试用静态变量代替他们的功能。。后来就悲剧了。
5.mvc4新功能
到目前就接触到一个mvc4新功能
Styles.Render可以方便的加载css,css文件路径的配置在AppStart/BundleConfig.cs文件内。
Styles.Render("~/Content/HomeCss")
6.asp.net mvc中视图和控制器的连接
视图通过@Html.ActionLink("显示名", "动作", "控制器名")来连接控制器,控制器名是去掉Controller后缀的名称