2018-10-12
这几天开始想要将原来做的Winform程序改造成网页平台模式。经过比对,决定采用MVC webapi
MVC : Model View Controller
Model: 处理数据的模型,将某些数据(数据可以从前端获取也可以从数据库获取)进行一系列逻辑处理,数据可以通过controller被前端调用,也可以保存到数据库。
View:最好理解,就是前端界面,严格来说可以不含任何数据处理,只需要从controller获取数据进行展示或者将数据传给controller。
Controller/apicontroller: 目前来看,就是负责model和View之间的数据传输。
基于我的winform的经验,各种类和业务方法都写在model里面。
apicontroller里面的方法就是一些接口,get/post/put/delete。
普通的controller里面的方法是用于打开页面,与我一开始理解不一样的地方在于,一个页面的名称如果不是默认的index.cshtml,调试的时候打不开
为什么默认index就可以打开了呢?
查看TestController里面的方法。
默认方法index(),return View(),view里面没有参数,则默认打开index.cshtml。在调试的时候,url默认使用本文件夹对应的Controller里面和页面名称一样的方法。
那么我们将这个方法修改下看是什么结果。
即使是在index页上右键用浏览器打开,打开的却是account页面。
这时候观察url,url的构成实际上是../TestController/方法,而不是页面名称。
这时候再去看App_Start的RouteConfig,发现这里的url构成已经很明白是
实际上,如果将controller中的返回页面改成任意页面,都可以,而不必要是同名称的view文件夹。
当然,从习惯上来说,使用同名便于使用。
总结:开始的时候,我以为页面是按路径来打开的,因为controller名称和view文件夹名称的相同以及默认index方法也页面名称的相同,导致了有此误解。。。。