ASP.NET MVC (一)——深入理解ASP.NET MVC

一、ASP.NET与MVC与WEBFORMS区别

1、ASP.NET是创建WEB应用的框架

2、MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系,所以可以称之为ASP.NET MVC

3、原来的ASP.NET称为 ASP.NET Webforms

二、ASP.NET Web Form

1、概念

使用VS,开发人员能够通过拖拽UI元素,并在后台自动生成这些界面的代码。称为后台代码。在后台代码中开发人员可以添加操作这些UI元素的逻辑代码。

微软的可视化RAD架构体系有两方面组成,一方面是UI,一方面是后台代码。因此ASP.NET Web 窗体,包含ASPX和ASPX.CS,WPF包含XAML/XAML.CS等。

备注:UI元素:面向对象程序设计平台上的各类控件.(如:菜单\编辑框等)

2、存在的问题

(1)响应时间过长。需要把控件转换为HTML代码,进行逻辑转换,消耗时间

(2)带宽消耗过大。HTML消耗,控件需要转化为HTML代码;后台代码类,不能被重复实例化应用;单元测试,无法自动测试,只能手动测试;

3、解决方案

将后台代码迁移到独立的简单的类库,并且拜托ASP.Net服务器控件,并写一些HTML示例。

三、Microsoft Asp.Net MVC

1、WebForm体系结构包含包含3层体系结构,UI,业务逻辑以及包含数据访问的中间层

2、Asp.Net MVC 由Model,View,Controller三部分组成。Controller中包含后台代码逻辑,View是ASPX,如纯HTML代码,Model是中间层。

3、ASP.NET MVC 请求流的通用步骤:

Step 1:首先获取控制器。

Step 2:依赖行为控制器创建Model对象,Model通过转换调用数据访问层。

Step 3:数据填充Model之后,传递到View 显示层,实现显示的目的。

四、创建MVC

1、打开Visual studio 2013 点“文件”->新建->项目。

2、 选择Web 应用,输入项目名称,选择存放路径,点击确定。

3、选择MVC 模板

4、选择Change Authentication(改变授权),弹出对话框中选择“No Authentication”,并点击确定。

5、在资源管理器中,右击controller文件夹,选择添加->Controller(控制器)

6、 选择空 MVC 5 Controller 并点击添加

7、输入控制器的名称”TestController“,点击添加。

在这一步骤中,要特别注意千万不能删除名称中的” Controller”关键字。名称中必须包含Controller关键字。

8、创建行为方法

打开Controller 类,可以发现已生成的Index 方法,将该方法删除,创建Public方法

五、Asp.Net MVC的Controller(控制器)

1、Action 方法 简单的来说就是一个Controller内置的public类型的方法,能够接收并处理用户的请求,上例中,GetString 方法返回了一个字符串类型的响应。

注意:在Asp.Net Web Forms中默认的返回请求是HTML的,如果需要返回其他类型的请求,就必须创建HTTP 处理器,重写内容类型。这些操作在Asp.net中是很困难的。在Asp.net MVC中是非常简单的。如果返回类型是”String“直接返回,不需要发送完整的HTML。

2、Action 方法中返回对象值与定义的类的名字一样,将调用ToString()方法,返回“NameSpace.ClassName”形式的类名。

3、

如果需要获得上面例子中的属性值,要如何操作?

简单重写类的“ToString”方法,如下:

   1:  public override string ToString()
   2:  {
   3:       return this.CustomerName+"|"+this.Address;
   4:  }

5. Action 方法是否只能用Public修饰符来修饰?

答案是肯定的,每个公有方法都会自动称为Action 方法。

6. 非public方法是什么?

类的方法都比较简单,并且并不是公共可用的。无法在Web中调用。

7. 如果我们需要其他函数来完成一些特定功能,但不是Action Method要如何实现?

使用NonAction属性修饰,

如下:

 

       1: [NonAction] 

   2:  public string SimpleMethod()
   3:  { 
   4:     return "Hi, I am not action method";
   5:  }

 

posted @ 2016-09-19 16:00  枫炎  阅读(389)  评论(0编辑  收藏  举报