首先,了解控制器
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.通过上下文对象获取数据
创建从控制器基类派生的控制器时,可以访问一组非常方便的属性。这些属性