我最近发布了我的高级控制器的新版本
这基本上是一个通用控制器 (ASHX),它在 ASP.net Webforms 上起作用,就像 MVC 控制器一样,它接收请求并自动调用所需的内部方法,根据请求查询字符串或参数解析其参数HTTP 动词并返回结果。它做的更多,但这是我主要的初始功能。
请求信息中的对象创建和水合是项目中最痛苦的部分,但最终我达到了与对 MVC 控制器执行相同请求的相似性能。
就像我说的,.net MVC 控制器实际上做同样的事情,但我从来没有设法了解如何。
例如,如果我对 MVC 控制器执行此 AJAX 调用:
$.ajax({
type:'GET',
url: 'SomeData/List'
data:{filter: 'whatever'}
});
这将调用一个接收字符串过滤器属性的控制器方法。
但它可能会变得更复杂,因为我们可以调用接收复杂类型的控制器,具有嵌套的复杂类型和集合,并且“神奇地”参数出现在控制器参数中正确解析。
有谁知道这个管道是如何在 .net MVC 中完成的?