宝哥软件园

Asp.Net MVC ——控制器及动作详解

编辑:宝哥软件园 来源:互联网 时间:2021-09-05

首先,了解控制器

1.1、什么是控制器

控制器是一个. NET类,包含必要的处理请求。控制器的角色封装了应用程序逻辑。控制器主要负责处理请求、操作模型以及选择视图呈现给用户。

简单理解:实现了IController接口,修饰符必须是公共的、抽象的、泛型的,类名必须以Controller结尾。

在MVC框架中,控制器类必须实现System下的IController接口。Web.Mvc命名空间。如上图所示,这是一个非常简单的界面,只有一个Execute方法,在请求控制器时调用Execute方法。您可以通过实现IController接口来创建控制器类。

1.2、控制者的作用

A.对应用程序的每个请求都由控制器以自由的方式处理,只要它不偏离负责视图和模型的区域。

b、不要把业务或数据存储的逻辑放入控制器,也不要创建用户界面。

1.3.创建一个实现IController接口的控制器

示例:创建一个实现Icontroller接口、读取路由数据和生成数据写入响应的类。

在“控制器”文件夹下创建一个名为MyFirstController的类,实现IController接口并添加以下代码

运行应用程序,导航到地址栏中的/MyFirst,查看该控制器生成的输出。

创建一个类,MVC框架会把它当作IController,把请求发送给它,对如何处理和响应请求没有限制。这是一个很好的例子,因为它向您展示了MVC框架的可扩展性,但是用这种方式编写一个复杂的应用程序是非常困难的。

1.4.创建从控制器类继承的控制器

您可以从系统中导出您的控制器。Web.Mvc.Controller类,大多数Web开发人员需要熟悉这个类才能支持请求处理。控制器提供以下三个关键功能。

(1) Action Method:将控制器的行为分解为多个方法(不仅仅是Execute()方法)。每个操作方法都暴露给不同的URL,并由从输入请求中提取的参数调用。

(2)动作结果:可以返回一个描述动作结果的对象(例如渲染视图或者重定向到不同的URL或者动作方法),然后通过这个对象达到你的目的。指定结果和执行之间的这种分离简化了单元测试。

(3)过滤器:您可以将可重用的行为封装到一个过滤器中,然后通过在代码中添加特性,在多个控制器或动作方法上标记该行为。

除非您心中有明确的要求,否则创建控制器的最佳方法是从控制器类中派生它,这正是Visual Studio在Visual Studio中添加控制器时为您做的事情。

在Controllers文件夹下,创建一个名为MySecondController的类,继承Controller类,然后添加一个Action方法TestAction并编写以下代码返回一个action结果,最后右键单击该action方法添加相应的视图。

运行应用程序并导航到/MySecond/TestAction。浏览结果如下:

作为Controller类的派生类,要做的工作是实现action方法,获取处理请求所需的各种输入,并生成适当的响应。以下内容将介绍数据的接收和响应。

第二,控制器接收数据

2.1.数据源

A.查询字符串值b、表单数据c和路由数据

控制器需要频繁访问来自输入请求的数据,例如查询字符串、表单数据以及路由系统根据输入网址解析的参数值。访问这些数据有三种主要方式。

(1)从上下文对象中提取。

(2)作为参数传递给动作方法形成的数据。

(3)明确调用框架的模型绑定函数。

注意:参数名忽略大小写。例如,请求['测试']和请求['测试']的结果是相同的。下图:

视图部分

控制器部分

2.2.通过上下文对象获取数据

创建从控制器基类派生的控制器时,可以访问一组非常方便的属性。这些属性

更多资讯
游戏推荐
更多+