欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

.NET MVC5简介(一)

程序员文章站 2022-09-27 17:21:28
就像是.NET Framework WebApi与.NET Core WebApi一样,.NET Framework MVC与.NET Core MVC的区别,也是框架的之间的区别。本系列先首先从.NET Framework MVC介绍,后面再去介绍.NET Core MVC 狭义MVC: MVC是 ......

就像是.net framework webapi与.net core webapi一样,.net framework mvc与.net core mvc的区别,也是框架的之间的区别。本系列先首先从.net framework mvc介绍,后面再去介绍.net core mvc

.NET MVC5简介(一)

 

 

狭义mvc:

  mvc是web开发框架

  m:models,数据的传递模型,普通的实体

  v:view,用户看到的视图模型

  c:controller,决定用户使用哪个视图,还能调用逻辑计算,里面的方法叫action

广义mvc:

  model、view、controller

  v:界面

  c:控制,把m和v连接起来

  m:数据和逻辑

  程序的设计模式,一种设计的理念,可以有效的分离界面和业务。

首先,建立一个firstcontroller,

public class firstcontroller : controller
{
    public actionresult index()
    {
        return view();
    }
}

返回类型还有viewresultbase、viewresult、jsonresult、filepathresult等,其实这些都继承了actionresult。

webapi是返回数据的,为啥都不都用mvc算了?其实不管是aspx/ashx/webapi/mvc,都是使用http协议的,所以一切的请求都可以实现的。

aspx:属于比较重的,默认有页面的生命周期---前后端融合,viewstate---跟c/s是一一对应的

ashx:属于轻量级的,没有页面的概念

mvc:前后端分离的,c可以任意指定视图,可以踢桃后台多态ui

webapi:准人做专事,管道都是独立的;restful,没有action的概念。但是在.net core中,二者又融合管道了。

传值的方式:

viewdata字段传值,里面是object,需要类型转换。viewbag,是dynamic传值,可以随便属性访问,运行时检测。以上二者都是会覆盖的,后者为准。model。传值,适合复杂数据的传递,强类型。tempdata,临时数据,可以跨action后台传递,存在session里面,用一次就清理掉。

masterpage,layout,默认是_layout,可以自行指定。

global。asax,全局式。

public class mvcapplication : system.web.httpapplication
{
    private logger logger = new logger(typeof(mvcapplication));
    protected void application_start()
    {
        arearegistration.registerallareas();
        filterconfig.registerglobalfilters(globalfilters.filters);
        routeconfig.registerroutes(routetable.routes);
        bundleconfig.registerbundles(bundletable.bundles);

        this.logger.info("网站启动了。。。");
    }


}

application_statr()全局启动时执行,且执行一次,非常适合做初始化,也可以静态构造函数。还可以有很多别的。

dynamic是个动态类型--运行时检测--编译时随便你写
利用委托的,性能比反射高,可以提供便利
弱类型语言的特点,方便做一些特殊处理