当前位置: 代码网 > it编程>编程语言>Asp.net > ASP.NET Core MVC中的控制器(Controller)介绍

ASP.NET Core MVC中的控制器(Controller)介绍

2024年05月18日 Asp.net 我要评论
操作(action)和操作结果(action result)是 asp.net mvc 构建应用程序的一个基础部分。在 asp.net mvc 中,控制器用于定义和聚合一组操作。操作是控制器中处理传入

操作(action)和操作结果(action result)是 asp.net mvc 构建应用程序的一个基础部分。
在 asp.net mvc 中,控制器用于定义和聚合一组操作。操作是控制器中处理传入请求的一种方法。控制器提供了一种逻辑方式,将相似的操作组织起来,允许一些通用的规则(例如路由,缓存,授权)使用共同的应用。传入的请求通过 路由 映射到操作。
asp.net core mvc 中,控制器可以是任何以 “controller” 结尾或继承自以 “controller” 结尾的可实例化类。控制器应该遵循显示依赖原则,并通过使用依赖注入的构造函数来获取其操作需要的依赖项。
依照惯例,控制器类:

  • 位于根目录下的 “controller” 文件夹中。
  • 继承自 microsoft.aspnetcore.mvc.conrroller 

这两个惯例不是必需的。

在 mvc 模式中,控制器负责初始化请求和实例化模型。通常来说,业务逻辑应当放在模型中执行。
模型应该是普通的 clr 对象,而不是 dbcontext 或数据库相关类型。
控制器获取模型处理的结果(如果有的话),返回适当的视图以及相关联的视图数据。
控制器是一个 ui 级抽象。它的职责是确保传入的请求数据有效,并选择应返回哪个视图(或 api 的结果)。一般在控制器中不会直接包含数据访问或业务逻辑,而是委托服务来处理这些任务。

1.定义操作(action)

控制器上的任何公共方法都是操作。操作上的参数使用模型绑定请求数据并验证。
接受参数的操作方法应验证 modelstate.isvalid 属性为 true。
操作方法应包含将传入请求映射到业务关注的逻辑。业务关注通常表示为控制器通过依赖注入访问的服务。然后,操作将业务操作的结果映射到应用程序状态。
操作可以返回任何内容,但通常返回产生响应的 iactionresult  的实例。操作方法负责选择什么样的响应,操作结果负责响应。

2.控制器辅助方法

虽然不是必需的,一般从 controller 基类继承自己的控制器。从而得到能访问很多属性和有用方法的控制器。

3.视图 view

返回使用墨香呈现 html 的视图,如, return view(model);

4.http 状态代码

返回 http 状态代码,如,renturn badrequest();

5.格式化响应

返回 json 或类似的以特定方式格式化对象。如, return json(model);

6.内容协商响应

操作可以返回内容协商响应(使用 ok ,created , createatroute 或 createataction),而不是直接返回对象。

7.重定向

返回到另一个操作或目标的重定向(使用 redirect,localredirect,redirecttoaction 或 redirecttoroute).

除了上述方法,一个操作也可以简单的返回一个对象。在这种情况下,对象将根据客户端的请求进行格式化。
在大多数应用中,许多操作会共用部分工作流。例如,大多数应用程序可能只通过验证的用户,或者要利用缓存。当希望在操作方法运行之前或之后执行某些逻辑时,可以使用过滤器。可以通过过滤器来处理这些横切关注点,从而避免操作变得臃肿。
在授权和身份验证的情况下,可以将 “authorize” 特性应用于需要它的任何操作或控制器上。
在 mvc 应用程序中,很多横切关注点都可以使用过滤器来处理。另外一种选择时中间件。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com