ASP.NET MVC 控制器深入解析
1. Web Forms 与 ASP.NET MVC 的对比
在开发 Web 应用时,Web Forms 和 ASP.NET MVC 是两种不同的选择。使用自动化测试检查控制器类时,若采用 Web Forms,虽可通过架构类似 MVP 的解决方案来实现关注点分离(SoC)和可测试性,但这并非其架构自然具备的特性,需要在设计改进和开销之间进行权衡。而 ASP.NET MVC 则在这方面具有明显优势。
在 ASP.NET MVC 中,处理 HTTP 请求的机制与 Web Forms 不同。请求会被路由模块拦截并分发到集中的 HTTP 处理程序(MVC HTTP 处理程序),该处理程序根据请求内容(特别是 URL 格式)确定要使用的控制器。而且,ASP.NET MVC 没有页面生命周期,HTTP 处理程序是唯一且不针对特定页面的,整体模式更像桌面应用,用户触发操作,执行操作,然后更新用户界面,这种模式更自然地满足了 SoC 和可测试性的需求,且更直接、敏捷和快速。
2. 控制器的核心作用
在设计 ASP.NET MVC 应用时,采用以动作为中心的请求视图,将处理请求的过程和生成下一个 HTML 视图的过程清晰分离。视图的生成可视为外包给外部(且可替换)的视图引擎这一“黑盒”组件。开发者更关注用户从显示的用户界面可能触发的操作,即 Web 页面要实现的用例。
控制器是一个普通类,包含一些公共方法,每个方法通常与一个可能的用户操作(如更改列表选择或点击按钮)一一对应,因此控制器在 ASP.NET MVC 应用的架构中起着核心作用。
3. 动作与控制器
尽管控制器在
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



