Webfrom VS MVC

 

WebForm:

请求过程:客户端向服务器发出请求→服务器IIS接收请求,并交给Framework→①Framework创建index.aspx的页面类对象;②可能访问数据库;③并处理业务;④准备要输出的html数据→最后将逻辑处理后的处理交给客户端

 

 

注意:Framework创建的是一个页面类对象,它的业务处理等都是在它的后置类对象中完成,它的界面显示也是跟它的后置类对象有着相当强的耦合关系的。实例如下:

aspx中的代码:

<span style="font-size:18px;"><%@ PageLanguage="C#" AutoEventWireup="true"CodeBehind="Demo.aspx.cs" Inherits="WebformDemo1.Demo"%>
 
<!DOCTYPEhtml>
 
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1"runat="server">
    <div>
        <asp:Label ID="Label1"runat="server" Text=""></asp:Label>
    </div>
    </form>
</body>
</html></span>


 

后置类中的代码:

<span style="font-size:18px;">namespaceWebformDemo1
{
    public partial class Demo :System.Web.UI.Page
    {
        protected void Page_Load(object sender,EventArgs e)
        {
            string str ="我是John";
            this.Label1.Text=str;
        }
    }
}</span>

从上面的代码我们可以很清晰的知道,如果美工现在想将显示该数据的Label控件换成一个p,那么它就很难保证后置代码的不受影响。然而现实中页面的改变又往往比业务逻辑的改变要频繁的多,那么我们该如何处理呢??现在假设:我们将上面的实例进行如下的更改,通过如下的方式来向前台传递数据。实例如下:

aspx中的代码:

<span style="font-size:18px;"><%@ PageLanguage="C#" AutoEventWireup="true"CodeBehind="Demo.aspx.cs" Inherits="WebformDemo1.Demo"%>
 
<!DOCTYPEhtml>
 
<htmlxmlns="http://www.w3.org/1999/xhtml">
<headrunat="server">
<metahttp-equiv="Content-Type" content="text/html;charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1"runat="server">
    <div>
        <%--<asp:LabelID="Label1" runat="server"Text=""></asp:Label>--%>
        <p><%: this.DbData%></p>
    </div>
    </form>
</body>
</html></span>
 

后置类中的代码:

<span style="font-size:18px;">namespaceWebformDemo1
{
    public partial class Demo :System.Web.UI.Page
    {
        public string DbData { get; set; }
        protected void Page_Load(object sender,EventArgs e)
        {
            string str ="我是John";
            DbData = str;
            //this.Label1.Text=str;
        }
    }
}
 </span>


MVC:

请求过程:客户端向服务器发出请求→①服务器IIS接收请求,并交给FrameworkFramework根据路由配置,解析URL;②Framework创建blog类的对象;并调用index方法;④可能访问数据库;⑤并处理业务;⑥将要显示的数据交给相应的View→最后View决定数据显示的界面、样式。

 

 

注意:Controller用于创建相应的类,并调用与之对应的View层中的相应的方法。这样的话就将原来的耦合在一起的类和方法给解开了。这样的View层只管界面的显示了。


总结:对于MVC的学习还在进行中,现在还只是刚刚开始,更多的体会还需要在项目中去体会。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。