原文:MVC Application Lifecycle

来一探究竟在MVC应用程序中参与请求处理的各个不同组件。

目录:

序言

在这篇文章中我们将讨论MVC应用程序生成周期以及当请求从一个组件传到另一个组件时是如何被处理的。我们将说说这些在应用程序生命周期中依次发生的组件。我们也将考虑每一个组件的角色以及如何和管道中的其它组件相联系的。

背景

作为开发人员,我们都知道一些使用MVC框架来处理请求的组件。我们大部分都是用控制器和操作方法来工作的。

我们也使用不同的ActionResult和View工作。但是,我们知道其它参与请求处理的重要组件吗?知道在请求管道中请求是如何流动的吗?

当我开始学习MVC的时候,我不能理解的一件事情是请求是如何从一个组件流向另一个组件。我也不清楚在请求处理过程中HTTP模块的角色和HTTP处理程序。毕竟MVC是一个Web开发框架,所以它必须有HTTP模块和涉及管道中某些地方的HTTP处理程序。

在请求处理管道中我们有更多的组件被涉及到,然后我们知道,和我们一起工作的控制器和操作方法在请求处理中有着同样重要的角色。

虽然大多数的时候我们可以使用该框架提供的默认功能,但是,如果我们明白每一个组件的角色,我们可以很容易地互换组件或者提供我们自己的自定义实现。

在请求管道中的主要组件以及它们的角色。

aaarticlea/png;base64,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6EgLIdZkypQptueee9rMmTOjkKzp169fWM0zVXbcccdQTrfYYosoRAghckfKq5KNlFdCCCGEKFbMmTMnOIpesGBB2lMH04WVBkePHh2mGgoh1gTlFVaJs2bNikKyBuvFPn36WPny5UMHsXLlypnK51tvvdUqVaoU/n7kkUeCNddnn31mrVq1CmGpQHemoOsCIUTRR8qrko18XgkhhBCiWIGAWa5cuTx1Vn/55Rfr3LlzuNa3zTbbLKxAyNSjZAhjGpMQYm0oP654yoktt9wylDGm5rKypy+Y8Mwzz9iNN95ol112Wdg+//xzq1atmp1xxhnheCqgXD744IOjPSGEECUVKa+EEEIIUazAymL58uXhNx1QRNHJHTJkSBSSAasQ3nHHHVlOQ9xqq62C/x0hxNow5TYvU2r79u0blNC77bZbFJJB1apVrX79+vbDDz/Y+PHjo9CcoS5Y307jhRBFgzCoxbaOhPuIIoeUV0IIIYQoVmy44YZZ+qfKDTrMEydOtO22284GDBgQph/+/vvv9uijj1qFChXC8R9//DE6O4MjjzzSbrvttmhPCBFno402sgYNGkR7qYMlFtN5WPET31Yoq77//nvr2rWrjR071jbeeONgXZkKKMGoE4QQgnqjzAYbpD245XAVaquNNkqt/hGFi3xeCSGEEKJUcPPNN9stt9xir7zyih199NFRaAaEc5xpTOk4lhZCpA8Kq7gCmg4nFlRO+/btw6IKqYAl5RVXXBGUX0KIks2MGTPsuOOOs6pVq9iihQtsdcynFdZSWFh/OHacfTtzWfh79erUfV5xPaqRY/ff3cpvsMKqVa++hs+sDTYoYxUqVrQVK1fZqaeeGjZRuEh5JYQQQohSQbdu3YJz6HfeeccOOOCAKDSDBx54IPjceeyxx+z888+PQi04hV+yZEmYPiiEWJNff/01WE998MEHUUjqMN3w2muvDX7ocJIM+M/CAfzgwYPDfirgoHnu3LlWs2bNKEQIUVJBmVSvXj37/c859mi/12358mW2ckVG/QGrE/9Vr7GFNWrWwlbEFOKpsuGGZe2P2TNt8vffWVxLskGZMmHBiScfudc+GTXMRo8ZkycLcLFuSHklhBBCiGIFo6lffvllWquRwQsvvBA62i1btrT777/fWrRoEQRhrEAuuOCCsHLa+++/b+3atYuuMHv11VeD750777wz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YtmyZfbUU0/ZRRddFIUIIYoTRxxxhA0cODD8ve22266hpFqxYoXtsMMO1qdPH6tatWoUmj1YXrEQA/6zhBBClFykvBJCCCGEEEKkDdaP3333nbVo0SIKSQ0WTvjqq6/CdFwWX1gXPv30U3v88ceDQlsIIUTJRQ7bhRBCCCGy4cMPP7Snn3462hNCxGFKLb6p0qVDhw7ht1q1auF3XWD6If7shBBClGxkeSWEEEKIYsWSJUvs/vvvD1OF0vF5lRdQXk2ePDn4whJC5B/4taIsv/3221apUqWwciHwy7FWrVqF1T6FEEIIkPJKCCGEEMWKRYsWWdeuXYMCq0yZ1I3Ily5dauPGjQs+durWrRuFCiEKGxysU34XL14chaxJ5cqVg9KYVQdTAYVXOnWBEEKI4odqeSGEEEIUK7DSYJpQup3VHj16WPv27e26666LQoQQ6wJKoz///DPaS5358+fb8uXLw7TB5I3VPuvXr28bbbRRdHbOjBw50jp37hztCSGEKKnI8koIIYQQpQKcOp9//vm299572+jRo6PQnPnpp59s9uzZtscee0QhQgjnl19+CYqjiRMnRiGpM2/evCynBdI1KVu2rFWsWDEKyRksKv/6669gUSmEEKLkIuWVEEIIIYoVq1atss8//9zatGkThaTOOeecY08++aTtv//+1qVLlzWmLSESHXzwwVahQoUoxKx37942atQo69+/fxQihHCmTJkSFLuzZs2KQoQQQoiCQcorIYQQQhQr/v77b6tRo4atXLkyramDrBp49tlnZzqGzoqhQ4cGxZaDtRbKq5deeikKEUI4WF7ttddeNn369Cik8KE8//PPP2sonYUQQpQ85PNKCCFEvoNSAesYbaVn45sXFkw12myzzdL2eYUvHa7bYostbKuttlpjIwyFWM2aNaOzMyjsdxOiOLFixYowZW998umnn9q5554b7QkhhCipyPJKCCFEvkFHBmfaG2ywQfBZIkoPfHNWAcRC6fjjj49CC4a5c+fa9ttvH5w+89yC5I033rDx48fbbbfdFoUIIRysnvAJl6z0LUyGDRtm119/vX322WdRiBBCiJKIlFdCCCHyDZQKdevWtQkTJgTlVU7Ts0TJonz58nbGGWdYhw4d7MILL4xCCwaUVvimGjNmTJ6UV+RTOrzTpk2zY4891rbbbrvoiBCiMLj//vtt4MCBds0119hBBx0UheaN4cOH24033mgff/xxFCKEYMBl8ODBKa/aKcT6BrUUC3XQPjRu3DgKXRMpr4QQQuQbrB5Vp06d4AeFqV1MuRIlHxRIKK9OPvlk22effQpcebUuPPTQQ3bJJZdEe2bdu3e3a6+91vbbbz97//33g/BUlGC1w0mTJqU9RVKUThgwQOgvTIUsFrfpdpCbNGkSBjmef/55O+mkk6LQvIEi+qabbso35dXFF18cFmqoUqVKkasPRMHB9HDyMT4VizuswMl0eBYn2XjjjTWQKIoF5cqVs27duoWB0OzkSCmvhBBC5BuuvPr5559DZ1sCU+kBZ8mnnHKK7bvvvkVWefXll19aixYtwt/t27cPyqo777zTrrvuOrvjjjvshhtusA8++MD23HPPcA5g5eUdgcIG5S/L/6OIQKiTyCZygjqXjjf17sSJE6PQguW3336zCy64IFh4pMOQIUOsc+fO1rx5c/voo4/CaHte+f333+2bb76xTp06RSHrBtajJ554YrAIwxG8KPkw2EbZoe5fuHBhFFp8WbZsWWizKJ9SXoniAoOgJ5xwQlgERMorsc4wvYLKsKD9iwhRmqAKrly58nr1F5KfSHlVeils5RXtEYJOOtx1111BUeXWHrRnKK3wl9O/f/8gNPXt2zeM+jmsUDh27Fjr06dPFFJ4oDSjbpgyZUp4V1kyipzAamTy5MlB6UKntTBYsmRJcJhOuU8HrKQob7/++qtVr149tIPeXmDJtfPOO9vrr78erJ8Km44dOwaF3KGHHhrKoCj54OYA5VXTpk1tzpw5UWjxxZVXWO4y8CFZTBQHUpEjpbwSKfHqq6/aMcccYzvttFOoAJVthFh36DhTllD0zJw5s0QosKS8Kr0UpvIKn1UHHHBAsNhIZ2GArl27BksrOtzEN6686tevn5122mn28MMP20UXXRRdkaFgZlsf0/a8A0J5YvRcyiuREyiv6Kxi0VRYyqu8goLtnXfeifbWhoU/mC67PtpFlFesXnjIIYeEMihKPlheobTCEpD2pbgj5ZUojkh5JfKNJ554woYOHRpGqzGhVrYRYt2hM8wIc9u2bcMUCpTDxR0pr0ovham8og2aNWuW1apVKwpJDfd3dfPNNwe/Ciiv8G1z3nnnBTP1Dz/8MLR1+++/f3TF+kUdEJEOrrxiMYOirrxiBc+vvvoq5GsUB+DKWX4322yzoOBKRTnNdGBWOe3Ro0cUsm5IeVX6kPJKiPWPlFci30B59d577wXhQCbUQuQPKHdwENq6devgL0TKK1GcKUzlVV5ZtGiRNWzYMNuOfY0aNeyPP/6I9jLASmv58uVWtWrVKKTwUAdEpMP6UF799ddf1qtXr7Cy2fpi6tSpQfHMghH5gZRXpQ8pr4RY/6QiR2rpGpEy6Dmp/LRp05a/m8YQhCgcmIr0xhtvBAVrMlhxZeV0+s0331yvHXMhijIMWDDVNi+wKu3ZZ58dBnBYfRDfqosXLw6WkSymkCq1a9fON8WVEEKIoouUV0IIIYQoVjBCzqgyyt90admyZRiNpqOMP0c2VmabMWNG6EQnwyh8UZ+CJcT6AouVTTbZJNpLHawgd9xxR3vqqafss88+swkTJoRyxr1Y3v+cc84JlslCCCGEI+WVEEIIIYoV+KrC/2K6TtS///774JwdR+/bbrutHXXUUWFr0KCBDRo0KDh0T54azzPcJ48QYk3wT4W1VLrgew5OPfXUTMstt0LG/xyKLFZOTAXOfeWVV6I9IYQQJRUpr4QQQghRrEB5xZYu33zzjXXv3j0oqpIZPXp0WIkQ/45xfHqvEGJtcKzepUuXaC91cNiO5dWzzz5rxx9/fBSaAYplFjPBOisVUErffffd0Z4QQoiSipRXQgghhChWuEIpVaUSU5Luueee4O8KPvnkk+Bk+q677gqdXpRWAwcODMeSO8yHHnqo3XjjjdGeECJOtWrVgo+qdMGJNFaOTA10C0qffsg0QpzPs6UClpGpniuEEKL4IuWVEEIIIYoVVapUseHDh6c8bRDF1NVXX20vv/xy2B8zZoxdeumldt1119m1114bpgviPBratm0bfp2tt97aGjduHO0JIfKDTp062axZs2z//fe3fv36hbChQ4faGWecYaNGjQorf2a1sEJWMHURSy0hhBAlGymvhBBCCFGswNKiVatW0V7uNGzY0Fq0aGE77LBD2N9iiy2CkmrXXXcNG/eiM/3BBx+EqUxCiNRYsmRJWisDOrfffnsoj1yLIhnwR/fMM8+Evx955BGrXLly+Ds3sP5KVjoLIYQoeUh5JYQQQogSzZFHHmlffPGF9ezZM+xfdNFFNnbsWPv000/DxjSld9991/bcc89wPM6bb75pt912W7QnhIjz999/59nf1Lfffhum8zZv3tw233xzq1WrVpimO2DAADv88MOjs3KHFUQfeuihaE8IIURJRcorIYQQQhQrFi5caCeffHLajtTpELOi2U033RSF5M7OO+9s++67b7QnRMkHhRRT+lIB5+ooftOF1UKZ6nfllVfal19+GZ45Y8aMsJjCIYcckrKzdiGKIpMmTdJCH0IUAFJeCSGEEKJYgXPm1q1bp7Ti4EEHHWQnnHCCnXjiiXbSSScFpRe/7Mc3Vjw77rjjbNq0adGVGey0005h6X4hSgNz5861HWrXDr7gCpKHH37Yttlmm2D1mEyHDh3CNN558+ZFITkzf/78YMUlRFHg4Ycesvr169v06dOjECFEfiHlVRGhe/c77eyzz472hBBCCJEd5cuXt0suuSRX5RXWI++8847179/fXnrpJXvxxRfthRdeCL/sxzecuTNd6YcffoiuFqJ08XuivOzaelf7t8xGVqFC+Sg0Z3CW/ttvv0V7qUPZXLx4sS1YsCAKyQBrFaywPv74Y5s8eXIUmjOsJsrKoUKsb155ZYD9L9E2gSyvhMh/pLwqAjz66KN2/fVdbYY09EIIIUS+UbNmTTvqqKPstNNOy3U79dRTw4Zj9zhfffVV8HslREmGqbg71tnR2ux9oN3YvZctWZzatL2ff/45WCemCqsJVqpUKVheAf7oqlevHpyus8JguXLlggIZH1hsqbDHHnsEpbQQ65NevR6wY489zl4Z9pnVb9LCVq5YHh0RQuQXUl6tZ57r1y84jj33suts5Uot8yuEWHcYCT/44INtzpw5UYgQRResoK677rpoLzWWLl1qt956a7SXM6+++mpYwSy37dlnnw0bHek4rEDYt2/faE+IkseChQtt5/r1rOMhx9odvR6yhQsXBN9wqcAUXhRPqcICCVhc4fMKsLzC0or26q+//grtFxx77LFWp06d8LcQRZ0BL/e3Sy+9zB7u97o137WVLVq0MDoihMhPpLxaj7yWEKhPPe00e/vDb23PdgckGvJl0REhhMg7tWrVtLfffnut6RhCFDWYpof/qfHjx0chqYHy6s4770ypg01nuU+fPqHDjHXJqFGjbOTIkeE3vhHGsv3eqXawBKlYsWK0J0TJ4vffZ9lWW25hrfba3558+VlbsYLpThkKpFSgDKYzPWro0KFhmt8xxxwT9nv16mXffPNN8H3FNm7cOJs9e7Y99thj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kqNp06bhN46HTZs2Lfw6n376qb388svRnhAizs8//2yNGzeO9lIHa62tt946WGCyNWjQIHPDL17z5s1TtujC3xXTgIUQQpRspLwqAuy8cwP76KOPwoozQgghhMgZFkTo2bNn2j6v3Brx/vvvD78OTrPdb89OO+0Ufh2OzZs3L9oTQsSpXbu2ffjhh9Fe6tx+++32448/2jfffBMsIidOnBi2CRMm2Lfffmtvvvmmbb755tHZQgghhJRXRYbdd989LBMshBBCiJzBgurrr79OW3lFO1ujRg0bOHBgmHJIxxvrD5br/+STT8J0xGT/Vvvuu6+dd9550Z4QIg6+FbfYYotoL3Uof6wmuGDBAnv33XeD/7nBgweHVdqwGk7HcpjVfufPnx/tCSGEKKlIeSWEEEKIYkXlypXt2WefTdvPDSuSDRgwIDiKhl9//dVmzpwZ/kZxhbNoIUTqoEDOq+KIRRewrjrggAOCYvmQQw6xWrVqBV906fDxxx/bmWeeGe0JIYQoqUh5JYQQQohSA5ZUU6dOtXfeecduvPHGsL3++us2Y8aMLH1vYQkyadKkaE8IEQcF8D777BPtpc6oUaOsR48e0d6aoGC+8soro73c2XXXXe3BBx+M9oQQQpRUpLwSQgghRLGCaYN0flMledWyKlWqBGuPW2+9NWxHHHFEsMrKCqYzXXHFFdGeECLOv//+a7///nu0lzr33HNP+L344ouD9ZZvWD/iqB3LylmzZoVzcgOrSab/CiGEKNlIeSWEEEKIYgVL7B9//PEp+bxiOlKdOnWCU2n8WmGl0apVK2vduvUaG2EtW7a0yZMnR1dmgF8epikKIbIm3em7MH369KAwvuGGG6KQDA4//HA78MADg8IZa0ghhBDCkfJKCCGEEMWO5cuXB6fPufHWW28FnzysYMb2+eef2xdffGGfffbZGhth48ePD1MK42BZgkNoIUTWlCtXLvordTbddNNQLlFiJcNUXRzBp1K+YcyYMUHpJYQQomQj5ZUQQgghih2rVq2K/sqZRx55xE488UQ76KCDwnbvvffaXXfdZd27d19ju/vuu8OGZVacatWq2Q477BDtCSHi1KxZ05577rloL3U6duwYFMOnnHKKPf3000EBhR+6U089NVhIsipoquXun3/+yVx4QQjxHyiAU1UCC7E+STWfbrA6FZt7Uep54oknwlLGL774oi1dujQKFUKsC0y1wHdPmzZt7O2337addtopOlJ8mTdvXpii9fPPP4f3o3MiSgf4naEjikP0Cy+8MAotGMhnOIn+6quv0hbMFy9ebJtsskm09x/kVTrBvEdRYdmyZbbVVlvZTz/9FKxbVJ5ETuArirxy8MEH22+//RaFFl2wvmIKcFY88MAD1qVLl2gvZ0aMGBEWXhg7dmwUsm6gWDv33HPD6oeUQVHywdJvzpw51rx5c5s7d24UWnyhr4ZiGcvGjTfeWG2HKPIgyyHnMNi45557ZitHSnklUkLKKyHyHymvREmiMJVXeYV2jOlFd955p1122WVRaAZdu3YNHWamFTZo0CAKXb9IeSXSobgpr/BpdcsttwSLq7/++it0Xho2bGjHHXecXXXVVdFZucP1V199dZgWnB+gvKIOO+ywwyTzlhLKli0b/Kw1btw4KLGKO0yrr1WrlrVt2za0Herui+IA5fDNN98MFvNnnXVWFLomUl6JlJDySoj8R8orUZIoDsqrF154wU4++eSweiDTB+MQ58ceeyxMgeIchzzMhlBV2Eh5JdJhfSivsOy46KKLbNCgQVFI+tDRZoNKlSqF33RgtcNvvvnGOnXqFIWsG/vtt1+YYsz9sMYUJR+3vOrcuXOJsbbDlyODMeuj7RIiL6CWog2g/q1atWoUuiZSXomUQHn13nvv2UsvvRQqdWUbIdYdV16x0tngwYNLlPLql19+kfKqFIHFBKvyofRhOl9BK69og/744w/bcssto5CceeaZZ+x///tfuI5pg0yjYMoSfrOIOw7ZFyxYEM4dMmRIWO3MYcn+jz/+2Hr37h2FFB5SXol0WB/KK6b9UWawlsoJyt7QoUODdQv1xLRp0+z7778P+Zq2wqf/ksdpF+nA0DZyrLB5/PHHrVevXtGeKE3svPPO9vrrr0d7QoiihpRXIiUYjUY4QXnFKJSyjRDrDkI5o81YXqEcrl+/fnSk+MLIZe3atW3y5MmhI1XaOtt0wPiuqToTLynw3iiE6JRitYCiqCChA7zLLrsEJSkj5rnB1KSbb7452sueunXrhrwbhxXRsDhGiVTYSHkl0qEoTxvEOgofPDBp0iTr2bNnjgph2hEct2+xxRZRSOGislb6oG+TSnsihFh/SHklUgLTU0aiGQ0TQuQfdPpxHs0IdOXKlaPQ4s0BBxxgH330UakTAl1xhQKvevXqwZqntIH11auvvhqcbRY0pC+d9VTAqurXX3+1V155xW677bZgJYJCy51F01Glk0yHuSjhyqspU6ZIeSVyhfKA8pWpT0VNeYXCuUWLFkGJhYLtqaeesocffjjLxRMo2yiS33jjjbDaZ2589913wVoGp+1CCCFKLlJeiZRBmCht1gRCFDRUwVisrI+pEQUJlio+DaS0gOJm3LhxduuttwZL1dJopYrCMlWF0vqATjM+rY4++mhr0qRJFFp0WbJkSZgaiQ858pfaYJETceXVzJkzo9CCBWU90+yuu+66KCR7UMIytRwlFopY8jf1ZDxf027gP4+6JNWVPynX77//flghUAghRMlFyishhBAin2jfvn2womPVK6yvRMGB76qsrDZy46STTgrKVTrcNWrUCGHjx48PDkJRamENEgefj2PGjLHnn38+Cilc9t9//+BzqygrBUXRAWUQeXnAgAFRSMGCYpWp76wWmA4TJkywESNG2Omnn25VqlSJQjPARUXFihXDan9CCCGEI+WVEEIIkQ8w+s8y23QeP/zwQ9tjjz2iIyK/YRrgUUcdFXzFpWPhx4q5KK9YFbFfv35RqAXLj7322isoifiOLDrg4Jdn1KhR1r9//yik8MG6paRZZ4qCAYumzTffPNorePA7xzThGTNmRCGpcdlll9kDDzxgI0eODCuUxmHKIEqxH374oUT4ghRCCJE/SHklhBBC5AP4W7n99tvD3127ds38W+Q/c+fOte222y4osdJRXt10003B59Vbb70VnFrH4XvxDZlWiON5Bwut0aNHB8WXEGJNUPayKiAK1lT46quvwkqDffv2tUGDBlm3bt3CNEIWL2Gq4NSpU0M5xVUFgwCtWrWKrsweVh7FkgvL19IGaUldKIQQpQEN4wkhhBDrCEoUHBA79913X/SXKAhQWOHAPF2/aj7N8M033wy/DtZyWIBA8kIDOE13x+5CiDVhyh9T/1IFxTDTAVFcAQsnsH/MMcfYkUceaZdffrktWrQoKGQaNGgQzsmNL774wrp06RLtlR6wP2AxJSGEKC1IeSWEEEKsIy+//LLNmjUr2stQeJTG1QYLC6b5zZ8/P+3V9/bZZ5/w26dPH2vWrJmddtppdvzxx9suu+wSHD5D27Ztw69Dp/quu+6K9oQQcfAb17Nnz2gvd3bbbTfbbLPNwgIEwN81a9YMq2qyOAGrfmKJNXDgwJR92qHILimr9aYDK4FPnDgxTJ8WQojSgJRXQgghxDrC6l5//vlnUGIxhYbl4FeuXBkdFfnNpptuGjq36fqBouPMNED45ptvgt8rvhlO9uGee+6x2rVrh7+dWrVqWaNGjaI9IcS68OSTT4YphkzTRTnFCq2sjIjyn3pz9uzZwZKqYcOG0RW5gzKbaYeljaFDh4bfu+++O/wKIURJRz6vhBBCiHwC30j4u8JXiyi6jB07Njhh//rrr8PUw3r16oVV/XA8LYRIHVbuRAHVrl27KCQ1sE5lBU8sHePKYRzA//jjj9axY8e1pvBmB6uFPvPMM/bggw9GISUfum+HHHKIvf3222Flxk8//VRKdiFEiUfKKyGEECKfYOl3nH6jHBElg3feece+++47u/LKK6MQIYSDg3Wm3qLASgeULiyawLUvvfRSFGphwYRTTz01KGaSfdOJ/8BJPX7B8NcHZ599dpgOLYQQJRkpr4QQQoh8QsqrwgGHztdcc409/PDDaTttnzx5cpg6yDQlRCCu5xf/WWz4t9pxxx2js/9bHe3QQw+NQoQQ68p+++0X/Mzhtyl5RcEmTZoEpRhlr06dOlGoiPPqq68Gf3xx1KUTQpR05PNKCCGEEMUKphNtv/320V7q4FOH5fRZDfLFF18MFh/+i++rV155xaZMmRKdnUHz5s2luBIin8HvFU7b8V+XDL6wlixZYn///XcUkjMonZmGWJqoX7++PfLII1apUiV77LHHrG/fvsHvohBClGSkvBKilIGT4t9++y3aE0KI4keFChXs6quvTtvqasCAATZ9+nTbaaedwhL9sO+++9q1114bVivj7w4dOoRwIUTu4CgdC6l0admyZVA4XXbZZfbJJ5/Yzz//HBZO6NatW9hnFUJWHkwF/NcxzbA0gXXahRdeGBSAJ5xwgp1xxhlh5UchhCjJSHklRCnjoYceCj5chBCitPHXX3+FX3zD3HTTTeFvOr3du3e3Hj16hE4w0wrjTJgwQUvRC5ENrBSI8iRdWG0QhgwZYrvvvntw3N6mTRu79dZbQziLJySv/JkdnBv3m1WaQIGvAUkhRGlByishShlvvPGGXXDBBdGeEEIUP7D2wIoqXcqWLRt+q1SpEn6rVatmw4YNC3/vvPPO4deXn3dGjhwZpucIIdaGKXvz5s2L9lJnq622Civk4e9q4403DlPeFi5cGKyHjjrqKBs4cGB0Zu6UK1fOqlevHu2VLlBeudN2IYQo6Uh5JUQpYu7cucGHBMLmDz/8EIUKIUTxgk7uSSedlLaDYvzEANYesNdeewVl1cknn2wXX3xxCKNTHYeOMT54hBD5y6677hoctqPEGj16tH344YdhCiLOyEVqlClTJvgPE0KI0oCUV0KUIvr16xf9ZdalS5foLyGEKF7gsB1Hz+n6vDr88MPD8vKDBg2yVatWWdeuXUP4Cy+8YN99951tvfXWa63gtXLlSlk2CJENKE8233zzaC99mMqLwhgfTg0bNrSNNtrIZsyYYbNnz47OyJ3hw4eHqYOlEXxeYYkqhBClASmvhChFsKqWwwgnztuFEKK4gcUVHbZ0La+YnoQz6KeffjoowJiyRF14ySWX2A033GCff/55dOZ/MJ2wXbt20Z4QIs4222yTacmYLp07dw4KY6YKogBjw0k792zRooX98ccf0Zm5g5K5NELapZNOQghRnJHySohSAv4k4lMFWYa6f//+0Z4QQhQfUDzl1dICK48GDRpEe2Z77LGH9erVy2677ba1pgzCfvvtlzmlUAixJviR23777aO91Ln33nuD0is7qyEcuLOqaKqka4VZUsBSDVcQQghRGpDySohSAg6KWSKeVYFYmnrp0qXhVwghihtMGWTV1NLaYRWiKMFgWLq4X6uXX345c2CNMj116tRgjVW5cuWwpQLKm9KqwMHyihUfhRCiNCDllRClBJwOuzBYqVKl4CcBoUcIIUT24Bxe03KEyJpffvklWC+my+LFi4OS6pBDDsmURZBPsOJiYO2ZZ55JeWGZNm3aWN++faO90gWynZT4QojSgpRXQpQyEBInT54c7QkhRPEDZ+usSlYYvP7663bTTTdFe0KIONtuu21YACFdWDhh3rx5wWE7g2ms6HnHHXeEsA8++CCcg+I4FbAsb9SoUbRXuqhevbr99ttv0Z4QQpRspLwSopSBaT0+EoQQoriyaNEiu/rqq4MSKx3mzp1rb7/9dljNLJkvv/zShg4dGu39x0knnRR8Ygkh1gafVyii0oWVP7G+QjlcsWJF22uvvcK0QfzOoQzDcXudOnWis0V2yPJKCFGakPJKiFJGrVq15B9BCFGswdICRROO29OBJfUPPvhge+ihh6KQ/3j++eftwAMPtGHDhkUhGdA5Z5VCIUT+cc4559g+++xjy5YtC/sPP/xwUFaxaiDl+rnnngurD6YCK4ied9550V7polq1ajZr1qxoTwghSjZSXglRCsludR8hhCgulCmTugiDz6qRI0faF198EfZ//vln++ijj+y9994Lyiq2zz//PBxLVu4vWLBAPq+EyAbKRl5X4xw1apRdc8014W8UV7g0GD9+vM2ZM8c6deoUwlNhm222Cb6zSiNMt0ThJ4QQpQEpr4QoZeAQdcWKFdGeEEIUT9KZMvjiiy9a+/bt7e677w77rHS255572v777x86yWxjxowJxxo2bBh+nddee82uv/76aE8IEQe/VC+99FK0t24w/a1p06ZhNdF0wPE7FpWlEazTUvUNJoQQxR0pr4QoZeDvCksCIYQormCZweITqS6PT2eYjZVWoUKFCsGnDlNu2HB6XL9+fbvlllts1113Dec4//zzjzqHQmQDFpCUJ7F+kOWVEKI0IeWVEKUMVvVJ10+MEEIUJdxBcapTB48//viw7L5bUOEseuLEifbZZ5+FqYSsXMjfWlVQiPTAAnJ9D4gx3fCxxx6L9koXKN9Rrq9evToKEUKIkouUV0KUMhilk/8WIURxBuVVOitssZpZzZo17aqrrrJJkyYFZ9B0+nbYYQfbfvvtwzk4Zs8KnLW7xZYQYk2wYFzfq3FOmTLFHn/88WivdMGAJK4g0l15VQghiiNSXglRysDqCmFHCCGKK0yTYepgqtMGHTp5ffr0CcorWLp0qR133HHBz06LFi3s3XffDeFx8KUjn1dCZA3Tcc8444xob/2A4hkFdWkE5eGiRYvC9GYhhCjpSHklRCkDh+2zZ8+O9oQQoviBjypWTU1nxUF44YUX7J577gn1IFx44YU2YMCAoAhjWuEBBxywVicQ31qshCaEKJqgzEYRXRrBMpT3T1eRL4QQxREpr4QoZTDVJt0OnxBCFDVYfCJdfv311/DbuXPn8PvMM8+E34EDB9pll10W/h4yZEj4FULkzrx58+zRRx+N9tYPtWvXtlNOOSXaK11sueWWNn/+/FKrvBNClC7UgxWilFGlShVbsmRJtCeEEKWHcuXKhd+PPvoo009P+/bt7bDDDgtO3OG3334Lv87zzz9vl1xySbQnhIiD0uTzzz+P9tYPrBR6+eWXR3ulD6yvZHklhCgNSHklRCkjHSfHQghRFMHao127dmk7KT7ooIPCb4cOHezSSy8Nf1977bXh9+uvvw6/O+20U/h19tlnHzvrrLOiPSFEHBZC6Nu3b7SXPkOHDg1Tee+8886wah5lmhVA//rrr+gMkRP4MUWuI+2EEKKkI+WVEKUMrZolhCjusGoqTtTpuKVDy5Yt7aGHHor2zHr06GEdO3YMfq7oQAN+r+Jsu+221qxZs2hPCJFf7LHHHnbggQfa1VdfbV27drWJEyfaggUL7Mgjj0xLYYwy+6uvvor2Sh8VKlSI/hJCiJKNlFdClDJYlYcOn5ZVFkIUV/B3hdIpL1x88cW2evXqsF111VUhjGk306ZNC2FCiNRZtmxZmIabLrfffruNHTvWttlmm6DEAlYD3WyzzaxevXo2YsQI++WXX0J4bnz//ffWs2fPaK904Qp8VhwUQoiSjpRXQpQy6KTR8ZN/BCFEaeXFF1+0k046KUwJZArhRRddZD/99FN0dE1GjRplvXv3jvaEEHHwEdepU6doL3Xefvvt4IPzgw8+sGHDhkWhGWDpuHjx4rAKaCq0bdvW+vXrF+2VPsqXLy/FuxCiVCDllRClDJRXCDozZsyIQoQQoniBlQHTivLSYTvttNOC4goF1pgxY4KFB6ulYe3xwgsvRGf9x3fffWfvvfdetCeEiIM1N9ZS6YJyCn9ZrBTIannAvWD27NnhV4NsqUN6CiFESUfKKyFKGZiYlylTJmxCCFEcWb58ufXv3z/aS53Ro0dnWmjg2+qmm24KvnZ23333EHbyySevpRCjQ43SXwixNpSXvLghaNq0qf3www/B19zMmTND2Ny5c+2dd96xN954w6pXr261atUK4bmBnyz8ZZVWtNqgEKK0oN6rEKUMpgxWrFgxU1gUQojiBsp3LEjTXT3VffPceOONoZN8yy23BN87H374oR1//PHh2ODBg8Ovs3LlyuCLRwiRNXlR7voCCThr33fffcPflEFWBF2yZIkdeuihtvXWW4fw3GB1QnzZlVYYlFy6dGm0J4QQJRcpr4QohdDx0yidEKK4Qv1FBzfdaYNcA6xwFgcl2H777Rf+/vXXX8Ov06pVKzvqqKOiPSFEnB133NGmTp0a7aUOUwaZsrvrrrvawoULQxgWVJtuuqkdcsgh9tRTT4WwVMDyy8t2aYQBSRznCyFESUfKKyFKISyr/Ndff0V7QghRvMDqqkuXLmlbXlWtWjX8Dho0KPzGGTlyZPjdfPPNw6/Tpk0bO+GEE6I9IUR+0b59e/v000/tq6++CgsjYBmJFdWbb74ZnZEaKLFL84AcPsf++OOPaE8IIUouUl4JUQqhwyfnnkKI4gqWBnfddVe0lzooobj27rvvDpYfp59+up166qlh1TMcuMMRRxwRfoUQucO02ilTpkR7qXPKKacEWeTZZ58Nqwuy8ie+5+rWrRudkTqU6e233z7aK32gzNe0QSFEaUDKKyFKITVq1AirdQkhRGkCHzq9evUKf//++++h4/zcc8+F6UrAMSxT43z//feZVllCiDX57bff7Oijj472UodVPAE/nOsKUw979+4d7ZU+sBaV5ZUQojQg5ZUQpZBKlSrZ33//He0JIUTx4p9//glKp3R9XsHZZ59t06dPt1tvvdU6duxo+++/v1111VX2008/2SWXXBKd9R90zr/++utoTwgRZ4cddrBx48ZFe6nz/PPPh98LL7zQvv32W5s3b15wZ8D2559/2pw5c8LxVChXrpxVq1Yt2it94DBfi0oIIUoDUl4JUQrZZJNNJOgIIYotKK/efvvtPCmvAAssVhx87bXX7PXXX7cePXpYnTp1oqNr0qlTJ7v00kujPSFEMiiP0gXLK6YIzp8/35o2bWrbbbddmPrHRvls165dWgqs0gyKO60gLYQoDUh5JUQpBEGHKTNCCFEcYUWy/v37h5VT0wULq9122y04Oa5Vq5ZtueWWYTv//POl1BeikHj55ZdDWXRYcZAVA9koh1hgoaROhTFjxthhhx0W7ZU+sLzSCtJCiNKAlFdClELwMSFBRwhR2pg8ebLttNNO9sknn4RpSvj+Y8NfzOOPPx6OJTNjxgybMGFCtCeEiMO02g4dOkR7qfPEE0/YN998Eyyw8Cv3ww8/hF/2KW+jR48Oiyqkwi677GL33HNPtFf6YEBy2rRp0Z4QQpRcpLwSohSClYEsr4QQxRWmC6JUSpdXX301XMs0J1Yr/Pzzz23s2LF2+eWXh+NTp061d999N/ztMD0xLysbClEaWL58eVBCpQtOxps0aWINGza0nXfe2erXrx9+2W/UqFFaqw5Wrlw5S8VzaYH6bMMNN4z2hBCi5CLllRClECyvEDiFEKI4woIT22yzTdoWpD4N6cEHH7RrrrnGWrZsaW3btrX77rvPunbtGo5NmjQp/Do8Y+XKldGeECIOU3fz4vMKnnrqqVCON9hgg8ytfPnymWUxVVBIl+YyyiI8TLMUQoiSjpRXQpRCatSoIUeoQohiS9myZYPlRro+r/bdd9/wm9U0QKYtwXHHHRd+HTrGmmYtRNagNJo7d260lzrDhw8PK38mW1CiYL7zzjvDCqCp8uWXX2ZaT5ZGUB6i+BNCiJKOlFdClEIY2cQ5qhBCFEfyammB8uqcc86xhx9+2K644oqw0uAbb7wRwlh5sGPHjmEq4UsvvRQ2VkLDsfsWW2wR3UEIEYdVAkeNGhXtpU63bt3CL1ME33zzTfvll19s3LhxduSRR4ZwfNC5Qjk3sDpi+m9phRWk86JAFEKI4oaUV0KUQqpUqaJpMEKIYgsWV/Xq1QtKrHR44YUXgpIKevbsaUcddVToLD/55JMhbNiwYda5c2c78cQTw8aKhscff3xQdgkh1oaV7nbddddoL3XcdcHzzz9vhxxyiNWuXdvatGkTymfTpk3DQgooj1MBf0+4QyitaLVBIURpQcorIUohLDO/YMGCaE8IIYoXKOCZdpTuVBmmG6YzZbp69erRX0KI/OTkk08OvxMnTgy/Dgorymjjxo2DMisVVq1aVaoH5CpWrJiyok8IIYozUl4JUQqpUKGC7bjjjtGeEEIUP6pWrRr9lTr4s8JaK9UNy6wlS5bYvHnzojsIIeL88ccfefI31aVLl6AcPumkk+yRRx6x5557LlhhHXzwwTZ9+nQ74IADbMCAAfb0009bv379bNmyZdGVa8MqhVdeeWW0V/rA55Ws6YUQpYENEsJZejb3Qohiz4oVK+zPP/+0WrVqRSFCiPxgxIgRduONN5Zq/yslDaYUfvjhh/bMM89EIUIIB4ufQYMG2amnnhqFpAbKK1b9TJWff/5Zg27ZMHnyZNtpp52Cwl0IIUoyUl4JIYQQ+YSUV4UD04patWplkyZNClMBCxJ8ybAV9HOEKE3cfPPNwaqqUqVKUUjW0E3Bx93777+vhROyYdq0abb99ttLeSWEKPFIeSWEEELkE1JeFQ74uGF5fBRYQojiCVNyUUzlRm4O2b///nsbMmRIWEG0NDJ79mzbaqutglW9lOxCiJKMfF4JIYQQolhBZ7YwFVf//PNP9JcQIg7TBnv37h3tpQeOxsuXL5/rlspKguku3lCSwI/pLbfcIsWVEKLEI8srIYQQIp+Q5VXhgd++0047Law8iCjD1r9//9CJZZofPnWwxGAJfujWrZt99913oSO8ePFiu+qqq2yvvfYKx1599dVwvwsuuCDsf/bZZ3brrbeGlVl/+eUXO/DAA8N3FUKsyU8//WQtW7bUandCCCEKHFleCSGEEKLYgbVBp06drF27dpmbgwJrt912s8qVK0chZi1atLD27duH8zp06GBbbrlldMSCgosVy5waNWpYx44dbe+997YzzzzTTjzxxOiIECIOVpDxciaEEEIUFLK8EkIIIfIJWV4JIUoTrALYpk0b++uvv6KQwmfu3Ln29ddf27777huFCCGEKInI8koIIYQQQgiRNqwWePjhh4e/582bZ23btrWpU6eGfTj44IODJeM222wTLLQGDhwYHTHr0aOHXXnlldGe2eDBg8M5nMvKglhIOjh3b9CgQXBO7rDC3tZbb23Vq1cPqxcKIYQo2cjySgghhMgnZHklhCit4Gtu2rRpQfnkzsNnzJgRFjxgKi+rhNasWdM22WSTcGzOnDm2cuXKoKgCfNHNnDkzXEv3BP902267bTgGU6ZMCQorpioCVl/clxUL3bedEEKIkouUV0IIIUQ+IeWVEEIIIYQQ+Y+mDQohihSM3L755ps2ffr0KESI4gP5d8WKFdGeEEIIkQFWZQMGDLBly5ZFIcWPL7/80j744INoTxQFsGhEbsbKMb/59ttvg8WjEEUFKa+EEEWKQYMG2WGHHZa5ZL0QxYkqVapY06ZNoz0hhBAig9NOO82OO+44GzJkSBRSvGCyDqu44hi/OCo0mL7arVs3u/vuu6OQksFHH30U5Gb3PZefIM8cdNBBxVrhKkoWUl4JIezBBx+0rbbaqtCtnQ444ICwSlEcX3L7jz/+UGMpih2tWrWyhx9+ONoTQgghMsCnFyxatCj85hddu3YNAyf5ybPPPht8jiGLOfgXq1atWrAw/vPPP6PQoscvv/xiderUsXvuuScKyQDLpFtvvdWuvfZaW7hwYRRavGARg86dO9vy5cujEMv0IYe/ufzELbnKlSsXFJdCFAWkvBJChFEbVvB56623opDC4d1337VPP/002sugfPny4XfjjTcODaYQxQkcB1eoUCHaE0IIITKgfYj/5hes0rhgwQL7+uuvo5B1Z9SoUcGZPtMc47izfP8tivhUt2SZFmf/vXr1CgNMPlBa3MCvJpZ7S5cujUIsKBnBF0nIL1zJilye33lWiLyy4c1aW1aIlKARz67ypqHEamnLLbfMPIeRqTvuuMO++eYba926dWhE33nnnTAa5KMkzvz58238+PFh3nrVqlWj0DVhlOirr74KS0LHGyiWpnaFz08//WQjR44MVlTJHWhGZH788cewrLSD34IXX3zRPv/8c/vtt99CnDkHxVF8hZ/ff/89vCOjbptuumkU+h8ffvhheDfuR3zq1asXHVkbRm/69etn77//fjifdOV92N99992DwMHx+vXr26mnnhoaanws7LDDDpkNdBzijuKNFYxShfdheW8YNmxYSBvuH2fy5Mk2adIkq1ixYtiSIV5Dhw4NjrkRIriehv6oo44Ky3kTn19//TXH78kzfJUlYFS2S5cuIf3JJ48++mhQ7pF/4vC+b7zxRhAuyV+kVVzRh8UaeYV8xRLlQgghhMgf3nvvvdD+I8PQXteqVSs6ksGECROCPEZ4XG7s27dvkLWOPPLINaaXIxd98cUXYfXFuEwQByUS8s7OO++cKQMyAPjaa6+Fa//6668gw33yySdBBvS2Hyskzhs+fHiQM3luTkoO7oUMhgzBtcT/+++/D8eQc3r06BFknu7du4dnkhaQVbxZDZINRRHplC7EBXlms802i0L+AzkI6zBwuRYZ6v777w/v+dlnnwWZEesh5PPGjRuH9yaenTp1CufH4bsgv8ZltokTJ9pFF10UpuOhHOzTp09455122ik6I3voXr/wwgt26KGHhu/Gd0E2BOTOJUuWhD5DMli0kX/4lnFruscffzzc5+233w77+NYcN26ctWjRIsTpiSeeCPe75JJLbMyYMeHc7bbbLstBYGRP0ioraz3kYfoF3333XYgL+QsZ8/TTT5cCSxQNEhWmECIbxo4du3qbbbbBVjZzu/zyy6Ojq1c///zzaxxjO/PMM8OxRIOZGZZosNY4J9EIhnMWLVq0ukmTJmsc22CDDVYnGrlwHGbOnLk60QCtcU6bNm1WJ4SH1f/880/Y5x4JQSXzeKIhX/3333+H699///1wTz/Gdtxxx4Vj9erVWyPct4TgE47zDrVr117j2Oabb7460aCH44mGc41jviUEjnA8KxKCTJbXsF1xxRXh3fl7++23X73pppuucdyfC48++ugax9iuvvrq6Gj2dO7cOZy7zz77rHHtrbfeGo4nBLbV1atXX+NY3bp1w3eAd955Z41jvsFtt90W/i5fvvwax+69995wHBLC4OqE4LPG8YSAE4699dZbYb9atWqrE4Je5vGEsBWOA9/ew3074ogjoqOrVycErbWOJ4Sa6KgQQggh8gJtaXL7utFGG62ePHlyOD548OC1jiNrOHvssUcIe+6556KQ1av/97//rXVNvM3+7bffVleuXHmN44ceeujqhQsXrq5QocIa4b4hP0FW8gLXZsfy5ctXt2jRYq1r2JAjAfkS+WSXXXZZ43i3bt3CcSA94sfY6tSpE+TW3FixYsXqiy++eI1rN9xww9XvvvtudMbq1ddff/0ax9kmTZoUZK3kcN+GDh26+rPPPgt/t23bNrrT6tX9+vVb4zzS1OW9008/PYQly+ku52fHtGnTgqxMmrVr1y7zuh122GGN+yCvOUuWLFldq1atNY6XK1du9U8//RTSJB4e384444zw7vxdqVKltZ4xe/bs6AmrVz/00ENrHGvZsuXqP//8Mzq6evUpp5yyxnHfTjrppOgMIdY/Ul4JkQ0jR47MrLiPOuqooFhxpcaoUaNWT506NfP4VVddtfqee+7JFDA++OCDIFjQkPg5Bx10UKbi5MUXXwzP4L7s04CgCDvwwAPD/rHHHhuO04B6Q9S8efPVt9xyy+qqVauG/c8//3z1X3/9Ff72jeto7GgwafC8oWY78sgjV998882Z+4Byrnv37uHehHXs2HH13XffvXr48OHhOPEifP/99w/xc8HrsssuC8dp0NingUcw4F7so/TKjpUrV65+6aWXgrLIlVNdu3Zdfeedd4b3SVa2kW6tW7cOf/fo0SPcY+DAgWGfdyW+pIufv3jx4nBOduy5556Z56IU3G+//cLfJ554YjjucWIfAdMVj/fdd184vtdee4X9Ll26BGHqmmuuCftAXPjbt9133z3zb5Ri4EIQykZ/NhuMGDFijXe/9NJLVzdq1Cj8zbd0gZB8yLNJc+7jSruePXuG41tuueXqRx55ZPUll1ySeS9ROkFY/fHHH6O9ggFFOXkPZXxJZd68eaFDWZLfsbhDPqTe41sJURBUrFgxtKcoSWh/L7jggqDMoV5ASYCShePIhMgPKLbY9wG9ZOXVk08+GfZRdNx///1BtmKfNtzzcYcOHUIYg1R9+/bNHFCFYcOGBbmDATbCUD4gh3377beZA20NGzZc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" alt="" width="812" height="284" />

让我们看看在一个MVC应用程序中当我们如果第一次请求一个资源时发生了些什么。

UrlRoutingModule

Mvc应用程序的入口

首先,请求被一个叫做UrlRoutingModule的HTTP模块截获。它是这种决定请求是否将由MVC应用程序处理的模块。UrlRouting模块选择第一个匹配的路由。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAj4AAADiCAYAAABOUc3RAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAADPjSURBVHhe7d0JvFXj/sfxX/NMqaSRStJEyZSKDDfJjSQukQzJdKmr5BojMst4TRniigwZisIfN6QioWjWpchYiAZpWP/1+bWe7M7t0Dmntjrr+369Tp299rz2Xs/zXb/nWesUiWImIiIikgJFk/9FRERECj0FHxEREUkNBR8RERFJDQUfERERSQ0FHxEREUkNHdUlUogsWrTI1qxZY0WKFEmWSGFCc120aFGrXLlyskRE8krBR6QQYDO+/PLL7YUXXrCSJUv6ZSl8CLS//vqrHXbYYTZo0CAFXJF8UPARKQRWrFhhBxxwgO2xxx52xBFH2OrVq5NrpDApVqyYjRw50t5//30bO3aslS5dOrlGRDaWgo9IIfDLL794FeCMM86w4447LlkqhdHw4cPt3nvvtdGjR1uZMmWSpSKysTS5WaQQIQBJ4abPWKRgFHxEREQkNRR8REREJDUUfERERCQ1FHxEREQkNRR8REREJDUUfERERCQ1FHxEREQkNRR8REREJDUUfERERCQ1FHxEpFD54YcfbOnSpckls4ULF/of9hQRgYKPSEpNnDjRLrroIrv22mvt+eeft++//z65ZsuxZMkSe+edd+ytt96yp59+er1AsyGrVq2ynj172m233eaXeU/80Vbe3+b0ySef2IcffphcEpEtmYKPSErdeuutdt1119k111xjnTt39r/sTrjYlB566CF76aWXkkt588Ybb9g+++xj++67r+2///52zDHH2MyZM5NrN2zNmjU2Y8YMmz9/vl9etmyZvffee/bFF1/45YL67LPP7IYbbvBAlunKK6+0bt26mf7ms8iWT8FHJKVKlChhLVq0sNmzZ3tFpWnTph4u7rvvvuQWBUe44i+J59Wbb75p7du3978+PmrUqHUVnJ9//tn//z2lSpWykiVL+u9FihSxcuXK2TbbbOOXC+rTTz+1Cy+80BYsWJAsWeuKK66woUOHJpdEZEum4COSUpUrV/aKSPXq1a1Nmzb2wgsvWI8ePez888+3efPmJbdaa9asWTZt2rT1Khpz5871akqwfPlyv8xfD6cyM2HCBA8hzLl5/fXX/Toq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NlkiWwp2EFauXJlcEpG80LYjG5Lv4ENnyU+xYsWSJb8JyxgiKlu2rBUvXtx23nln+9vf/ubh56mnnrIRI0bYjTfe6LcDHW/p0qWTS+vbZpttrFSpUnb44YfbpZde6kNeBKgTTzzRQ1FOhKhMhK+cAS0MuREQCB2Er88++8y+/PJLH1pD+fLl7dprr/VqFRYsWGBffPGF/859CjrsxvAeeE6qLvjmm2/WVV5ye/zchgTBe+c9ESJZ7yHMEFSXL1/uv4P3+/PPPyeXzEMSP5loNAit8ucZO3astW/f3iuSIpI3V199tZ100kmbdbqCbH02y+Rm9lLpRAky4Xc62qBr167Wo0cPH14BHXLOsJKJx1i9evW622y33XZ29913e0h46623fBkIVfvtt5+1bNnSA0tw3333Wbdu3dZVmKhI/eUvf/HO5M477/ThN6osDC3x+xFHHOEVF4LOqaeeui7s/POf/7RevXrZY4895sNue+65p/8eEBKoSHXo0MEf/6677lrvfec0depUXze8txB2qPIwPEho4XVm4vUeffTR1rx5cw+RmdcTdNjI9913X/8577zz/LGrVavm1zM8+Oijj/rvuO222+yss87y32kU+Awygw/De6xLQt8hhxyy3nqW7GG4leHKnJ+3iPwx5i/++9//tt69eydLtjzsyLITn9k+b4nop/r167du+gQ77K+//rpPO9lQAWJLVuDgk9lZBqGSQLWHAEFgqVu3ri/DV199ZZMnT7aqVav65ZDGqSBtCAGH25YsWTJZsnY4CJUqVfL/+dIcf/zx/pyNGze2iy++2B566CG/buLEib4BhEoUHQjziggqDJkxsZeKVOXKle3ss8/2y1R7mIzNY/D8YNlrr73mtyFINW3a1AYNGuTXcRsCwsiRIz0wtGnTxvr372/XX3+9X58TXyIqPvvvv7/VqlXLq1jgfdWrV8+6dOniQSysG6o/nTp1skmTJvljM8x3zjnn+OOgT58+HmaoDjA8x5eTwFajRg2vYL3zzjvrhTCem6E2EJrC44B1edppp/k8owsvvNA/T+YhMelasovh1mZ77GXb16rr32+CkIhsHNrsjkcda6NfftX7hM2BHVjayUMPPdTb7auuusr7jo1F+zps2LDNsnPJHNzMyn5B0MfdfPPN3neD/ufggw/2HXH6MPqnt99+26/b1Oij6A9/r5CQ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4K+zT5s2zb755ptkiYhI9in4iEhW8NfZqfhceeWVyRIRkexT8BGRrKhZs6a1bt3aGjZsmCwREck+BR8RyYpOnTrZuHHjrHfv3skSEZHsU/ARERGR1FDwEZGs0F9nF5EtgYKPiGSF/jq7iGwJFHxEJCv019lFZEug4CMiWaG/zi4iWwIFHxHJitWrV9uyZcts1apVyRIRkexT8BGRrHj++eetVatWdssttyRLRESyT8FHRLLiu+++s6lTp9q8efOSJSIi2afgIyJZwV9n//jjj+2yyy5LloiIZJ+Cj4hkRcWKFa1Jkyb66+wi8qdS8BGRrJgwYYKdcsop9swzzyRLRESyT8FHRLJi0qRJNnToUBs1alSyREQk+xR8RCQrDj74YD+B4amnnposERHJPgUfEckK5vdwAsO2bdsmS0REsk/BR0Sy4q233vI/VzF8+PBkiYhI9in4iEhWTJ482R544AEbM2ZMskREJPsUfEQkK7p27eqh56KLLkqWiIhkn4KPiGRFrVq1rEOHDrbrrrsmS0REsk/BR0SygmpPu3bt7K677kqWiIhkn4KPiGTF/Pnz7Y033rDp06cnS0REsk/BR0SyokuXLn5k14UXXpgsERHJPgUfEcmKqlWrWps2bax27drJEhGR7FPwERERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwEUmp8ePHW//+/e2qq66yZ555xn744Yfkmj/Pzz//bJdeeqlNmjQpWbK+2bNn2913320rVqxIloiI5I2Cj0hK3X777XbjjTfaLbfcYkcffbS1aNHCnnrqqeTaTeOhhx6yl156Kbn0x+bMmWODBg2y0047zX766adk6W+mTJliZ599to0dOzZZIiKSNwo+IilVokQJa968uX300Ude/WnSpIkde+yxdu+99ya3KDhCVV4eb9ttt7VKlSr5a7riiiuSpb9p3LixFS1a1CZPnpwsERHJGwUfkZTabrvt7JdffrGaNWtaq1at7MUXX7QePXpYv379bP78+cmt1qISM23aNFuzZk2yxOyTTz6xd955J7lktmzZMr/MY3788cc2btw4K1OmjH3//fc2ZswYv2716tXJrc1mzpxpEyZMsLlz5yZLzLbZZhsrVaqUtW7d2u666y577rnnkmvW4rVuv/329tVXXyVLRETyRsFHJKWWLFniwSRTnz59fPn06dP9MvN+TjzxRK8GNW3a1Lp3725Lly7166655hrr1auX/w5CzBFHHGEzZszw0NKuXTt799137a233rJOnTrZOeecY7/++qvftm/fvrbXXntZ+/btrW3btj7PiFBVpEgRD1Ann3yynXfeeXbKKafYZ5995vdBuXLlrHz58prjIyL5puAjklJffPGF1alTJ7m0tqrDZGeqLo0aNfJl559/vo0YMcJuvfVWu+++++zpp5/2eTvg/pUrV/bfsWjRIg9NuO6662zixIm23377ecBhaIrqDUHrjjvusDvvvNOGDx9uCxYs8PlFV199tX399dc+1MVQFpWh66+/3urVq2ddu3b1MASG54oXL+6/i4jkh4KPSEoRUt544w07+OCDverSpk0bn1vz4IMP2o477uhDWUOHDvUQw4Ti008/3UMI4QeEk2rVqvnvWLlypQ9TEW4IT3vuuafVr1/fKlasaLvvvrvVqlXLAwyPz/ydffbZx6699lqfUH3CCSdYlSpVrFixYh5sli9f7tWfJ554wgMZk50DgpGISH6pBRFJKYasCCuEH+bjEDRGjx7tFRgwZAWGrwICEXN2QEjJHHLi/oQS/g+4zY8//mirVq3yywydffPNN/b6669by5Yt7ZVXXvHKDmGoZMmSHsa4bXiMnXfe2StOVIcYHkOFChXWm2skIpIXCj4iKUVIOeaYY7zKQ6iggnPSSSetO1ScuTTIDDdffvmlVa1a1X9nWCrz3D9hmCqKomTJ2sfIDEJcT7hZvHixD3cxBMaEau6zcOFCnwPE68i8zyGHHOLBaPDgwTZw4EC/XlUfEckvtR4iKUV44ISBzOe56aabbOTIkb7swAMP9AoLQ1XVq1e3Cy+80I/oevzxx23YsGHWrVs3vz/VmA8//NArRkxsploUJihnIhxRWQJzgvbee2+fq8P8Heb1cF+qTBdccIHfP/xkYpIzr3HAgAH23nvvecgSEckPBR+RlKpbt+56k5M5pJ0Q07FjRw9BDClxdNZrr73mIYhqEHNx+B8EIO7PHKFDDz3UhgwZ4nN4wrAWqOSULVvWh7zAcBaPScDiqC8mP3fu3Nk+//xzn0dExYchOO6TE1UphsWYP0ToEhHJjyJxw/RbXVpEtkqcO+ewww7zYSMOBd8YhA0CSY0aNZIlazGUxOTiMNQ1a9YsH/5ifk+HDh18WcBRWRyuThjhcTizMkEmVGSmTp3qQ1sEnEw8B/OKODKMALbvvvt6GOJ9UG0iTNWuXTu59fp4TCZKcx6iNGLC+cMPP+wVtpynIxCRP6bgI1II5Cf4yNZJwUekYDTUJSIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CMiIiKpoeAjIiIiqaHgIyIiIqmh4CNSiJQqVSr5TQorfcYiBVMkiiW/i8hWasWKFdauXTtr27atde3a1VatWpVcI4VJ8eLF7emnn7Y333zTxo4da6VLl06uEZGNpeAjUgiwGffr189Gjx5tZcqU8ctS+BQpUsSWL19uHTp0sMGDB/tlEckbBR+RQmLlypW2YMECDz3qEAsnPtuiRYta9erVrWTJkslSEckLBR8RERFJDU1uFhERkdRQ8BEREZHUUPARERGR1FDwERERkdRQ8BEREZHUUPARERGR1FDwERERkZQw+3/y5ffYimdLigAAAABJRU5ErkJggg==" alt="" />

UrlRoutingModule是如何将请求和应用程序中的路由匹配的呢?

如果你研究了由global.asax调用的RegisterRoutes方法的话,你将会注意到我们添加路由到路由集合。这个方法是被global.asax中的Application_Start事件处理函数所调用的。

RegisterRoutes方法注册了应用程序中的所有路由。

aaarticlea/png;base64,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" alt="" />

public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
); }

现在你可能会问UrlRouting模块是如何知道它们的路由以及如何知道和这些路由相关联的RouteHandler的呢?UrlRouting模块使用MapRoute方法来知道它们的路由的。

如果你查看MapRoute方法,你将注意到它被定义为一个扩展方法。

aaarticlea/png;base64,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" alt="" />

在后台,它将RouteHandler和Route关联了起来。MapRoute方法内部实现如下:

var Default = new Route(url, defaults , routeHandler);

所以本质来讲这个方法做的事情就是将一个RouteHandler附加在一个路由上。

UrlRoutingModule被定义如下:

namespace System.Web.Routing
{
// 摘要:
// 匹配定义的路由的 URL 请求。
[TypeForwardedFrom("System.Web.Routing, Version=3.5.0.0, Culture=Neutral, PublicKeyToken=31bf3856ad364e35")]
public class UrlRoutingModule : IHttpModule
{
// 摘要:
// 初始化 System.Web.Routing.UrlRoutingModule 类的新实例。
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
public UrlRoutingModule(); // 摘要:
// 获取或设置 ASP.NET 应用程序的定义路由的集合。
//
// 返回结果:
// 包含路由的对象。
public RouteCollection RouteCollection { get; set; } // 摘要:
// 释放模块使用的资源(内存除外)。
protected virtual void Dispose();
//
// 摘要:
// 初始化模块,并使其为处理请求做好准备。
//
// 参数:
// application:
// 一个对象,提供对 ASP.NET 应用程序中的所有应用程序对象的公用的方法、属性和事件的访问。
protected virtual void Init(HttpApplication application);
//
// 摘要:
// 将当前请求的 HTTP 处理程序分配给上下文。
//
// 参数:
// context:
// 封装有关个别 HTTP 请求的所有 HTTP 特定的信息。
//
// 异常:
// System.InvalidOperationException:
// 路由的 System.Web.Routing.RouteData.RouteHandler 属性为 null。
[Obsolete("This method is obsolete. Override the Init method to use the PostMapRequestHandler event.")]
public virtual void PostMapRequestHandler(HttpContextBase context);
//
// 摘要:
// 匹配路由的 HTTP 请求,检索该路由的处理程序,并将该处理程序设置为当前请求的 HTTP 处理程序。
//
// 参数:
// context:
// 封装有关个别 HTTP 请求的所有 HTTP 特定的信息。
public virtual void PostResolveRequestCache(HttpContextBase context);
}
}

所以,现在我们知道UrlRoutingModule知道应用程序中的所有路由,因此它可以为请求匹配正确的路由。这里主要需要注意的事情是,UrlRoutingModule选择第一个匹配的路由。一旦一个匹配被发现在路由表中,扫描过程就会停止。

所以我们可以说,在我们的应用程序中我们有十个路由,越是明确的路由越是要定义在普遍路由之前,这样以防稍后添加的明确路由因为普遍路由被匹配而将不能被匹配。因此我们需要关心什么时候添加路由到路由集合中。

这里,如果请求被路由集合中的任意一个路由匹配的话,在集合中添加稍晚的其它路由将不能处理请求。请注意,如果请求不能被集合中的任意一个路由匹配的话,它将不能被MvcApplication处理。

在这个阶段要发生的下面的事情。

  • UrlRoutingModule附加路由处理到路由上

RouteHandler

MvcHandler的生成器

正如我们已经看到的那样,MvcRouteHandler实例使用MapRoute方法附加在路由上。MvcRouteHandler实现了IRouteHandler接口。

这个MvcRouteHandler对象被用于为我们的应用程序获取一个叫做MvcHandler的HttpHandler。

当MvcRouteHandler被创建的时候,它做的事情之一就是调用PostResolveRequestCache()方法。PostResolveRequestCache()方法被定义如下:

public virtual void PostResolveRequestCache(HttpContextBase context)
{
RouteData routeData = this.RouteCollection.GetRouteData(context);
if (routeData == null)
{
return;
}
IRouteHandler routeHandler = routeData.RouteHandler;
if (routeHandler == null)
{
throw new InvalidOperationException(string.Format(CultureInfo.CurrentCulture, SR.GetString("UrlRoutingModule_NoRouteHandler"), new object[]));
}
if (routeHandler is StopRoutingHandler)
{
return;
}
RequestContext requestContext = new RequestContext(context, routeData);
context.Request.RequestContext = requestContext;
IHttpHandler httpHandler = routeHandler.GetHttpHandler(requestContext);
if (httpHandler == null)
{
throw new InvalidOperationException(string.Format(CultureInfo.CurrentUICulture, SR.GetString("UrlRoutingModule_NoHttpHandler"), new object[]
{
routeHandler.GetType()
}));
}
if (!(httpHandler is UrlAuthFailureHandler))
{
context.RemapHandler(httpHandler);
return;
}
if (FormsAuthenticationModule.FormsAuthRequired)
{
UrlAuthorizationModule.ReportUrlAuthorizationFailure(HttpContext.Current, this);
return;
}
throw new HttpException(, SR.GetString("Assess_Denied_Description3"));
}

在PostResolveRequestCache()方法中发生的事情如下:

  • RouteCollection属性有一个GetRouteData()方法。这个GetRouteData()方法传递HttpContext对象为参数,并被调用。
  • GetRouteData()方法返回RouteData对象routeData
  • routeData有一个RouteHandler属性,它为当前请求返回IRouteHandler类型的MvcRouteHandler
  • 这个MvcRouteHandler有一个GetHttpHandler()方法,该方法返回一个MvcHandler的引用
  • 然后它将控制委托给了这个新的MvcHandler实例

MvcHandler

 请求处理者

MvcHandler被定义为:

aaarticlea/png;base64,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" alt="" />

正如你所见,它是一个标准的Http Handler。作为一个Http Handler,它实现了ProcessRequest()方法。这个ProcessRequest()方法被定为:

// Copyright (c) Microsoft Open Technologies, Inc.<pre>// All rights reserved. See License.txt in the project root for license information.
void IHttpHandler.ProcessRequest(HttpContext httpContext)
{
ProcessRequest(httpContext);
}
protected virtual void ProcessRequest(HttpContext httpContext)
{
HttpContextBase iHttpContext = new HttpContextWrapper(httpContext);
ProcessRequest(iHttpContext);
}
protected internal virtual void ProcessRequest(HttpContextBase httpContext) {
SecurityUtil.ProcessInApplicationTrust(() => {
IController controller;
IControllerFactory factory;
ProcessRequestInit(httpContext, out controller, out factory);
try
{
controller.Execute(RequestContext);
}
finally
{
factory.ReleaseController(controller);
}
});
}

正如你所见,上面的ProcessRequest()方法调用了ProcessRequestInit()方法,该方法被定义为:

private void ProcessRequestInit(HttpContextBase httpContext,
out IController controller, out IControllerFactory factory) {
// If request validation has already been enabled, make it lazy.
// This allows attributes like [HttpPost] (which looks
// at Request.Form) to work correctly without triggering full validation.
bool? isRequestValidationEnabled =
ValidationUtility.IsValidationEnabled(HttpContext.Current);
if (isRequestValidationEnabled == true) {
ValidationUtility.EnableDynamicValidation(HttpContext.Current);
}
AddVersionHeader(httpContext);
RemoveOptionalRoutingParameters();
// Get the controller type
string controllerName = RequestContext.RouteData.GetRequiredString("controller");
// Instantiate the controller and call Execute
factory = ControllerBuilder.GetControllerFactory();
controller = factory.CreateController(RequestContext, controllerName);
if (controller == null) {
throw new InvalidOperationException(
String.Format(
CultureInfo.CurrentCulture,
MvcResources.ControllerBuilder_FactoryReturnedNull,
factory.GetType(),
controllerName));
}
}

在ProcessRequest()方法中接下来发生:

  • ProcessRequestInit()方法被调用,从而创建了ControllerFactory
  • 这个ControllerFactory创建了Controller
  • Controller的Execute方法被调用

ControllerFactory

控制器的生成器

正如你所见,上面发生在ProcessRequest()方法内部的事情之一是获取用来创建控制器对象的ControllerFactory。Controller Factory实现了IControllerFactory接口。

当用ControllerBuilder创建ControllerFactory时,框架默认创建的是DefaultControllerFactory类型。

ControllerBuilder是一个单例类,被用来创建ControllerFactory。下面一行就是在ProcessRequestInit()方法中创建ControllerFactory.

factory = ControllerBuilder.GetControllerFactory(); 

这样GetControllerFactory()方法返回了ControllerFactory对象。所以现在我们就有了ControllerFactory对象。

ControllerFactory使用CreateController方法来创建Controller。CreateController被定义为:

IController CreateController(
RequestContext requestContext,
string controllerName )

使用默认的ControllerFactory实现来创建ControllerBase对象。

如果有必要的话,我们可以通过实现IControllerFactory接口来扩展这个工厂,然后在global.asax的Application_Start事件中做如下声明:

ControllerBuilder.Current.SetDefaultControllerFactory(typeof(NewFactory));

这个SetControllerFactory()方法被用来设置自定义Controller Factory,用以代替由框架使用的默认Controller Factory。

Controller

用户定义逻辑的容器

在MvcHandler中的ProcessRequest()方法中,我们已经看到ControllerFactory创建了Controller对象。

众所周知,Controller包含着Action方法。当在浏览器中请求一个URL时,一个Action方法得到调用。我们使用为我们提供很多功能的Controller类,而不是显式地实现IController来创建我们的Controller。

现在这个Controller类是继承自另一个叫做ControllerBase的类,该类被定义如下:

public abstract class ControllerBase : IController {

        private readonly SingleEntryGate _executeWasCalledGate = new SingleEntryGate();

        private DynamicViewDataDictionary _dynamicViewDataDictionary;
private TempDataDictionary _tempDataDictionary;
private bool _validateRequest = true;
private IValueProvider _valueProvider;
private ViewDataDictionary _viewDataDictionary; public ControllerContext ControllerContext {
get;
set;
} [SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Justification = "This property is settable so that unit tests can provide mock implementations.")]
public TempDataDictionary TempData {
get {
if (ControllerContext != null && ControllerContext.IsChildAction) {
return ControllerContext.ParentActionViewContext.TempData;
}
if (_tempDataDictionary == null) {
_tempDataDictionary = new TempDataDictionary();
}
return _tempDataDictionary;
}
set {
_tempDataDictionary = value;
}
} public bool ValidateRequest {
get {
return _validateRequest;
}
set {
_validateRequest = value;
}
} public IValueProvider ValueProvider {
get {
if (_valueProvider == null) {
_valueProvider = ValueProviderFactories.Factories.GetValueProvider(ControllerContext);
}
return _valueProvider;
}
set {
_valueProvider = value;
}
} public dynamic ViewBag {
get {
if (_dynamicViewDataDictionary == null) {
_dynamicViewDataDictionary = new DynamicViewDataDictionary(() => ViewData);
}
return _dynamicViewDataDictionary;
}
} [SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly", Justification = "This property is settable so that unit tests can provide mock implementations.")]
public ViewDataDictionary ViewData {
get {
if (_viewDataDictionary == null) {
_viewDataDictionary = new ViewDataDictionary();
}
return _viewDataDictionary;
}
set {
_viewDataDictionary = value;
}
} protected virtual void Execute(RequestContext requestContext) {
if (requestContext == null) {
throw new ArgumentNullException("requestContext");
}
if (requestContext.HttpContext == null) {
throw new ArgumentException(MvcResources.ControllerBase_CannotExecuteWithNullHttpContext, "requestContext");
} VerifyExecuteCalledOnce();
Initialize(requestContext); using (ScopeStorage.CreateTransientScope()) {
ExecuteCore();
}
} protected abstract void ExecuteCore(); protected virtual void Initialize(RequestContext requestContext) {
ControllerContext = new ControllerContext(requestContext, this);
} internal void VerifyExecuteCalledOnce() {
if (!_executeWasCalledGate.TryEnter()) {
string message = String.Format(CultureInfo.CurrentCulture, MvcResources.ControllerBase_CannotHandleMultipleRequests, GetType());
throw new InvalidOperationException(message);
}
} #region IController Members
void IController.Execute(RequestContext requestContext) {
Execute(requestContext);
}
#endregion
}

这个Controller对象使用ActionInvoker来调用Controller中的Action方法,稍后我们来仔细看看。

使用Controller Factory创建Controller对象之后,下面发生的是:

  • ControllerBase的Execute()方法被调用
  • 这个Execute()方法调用声明为抽象并将由Controller类定义的ExecuteCore()方法
  • Controller类的ExecuteCore()方法的实现会从RouteData中获取Action名称
  • ExecuteCore()方法调用ActionInvoker的InvokeAction()方法

ActionInvoker

Action选择器

ActionInvoker类有一些发现Controller中Action方法并调用这个Action方法最重要的职责。

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAdUAAADDCAYAAADUQYvFAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAClkSURBVHhe7d0HmBRV1sbxQ44yg5JFkiRFVCSLARBQETEgmDOKYABF0NVVWcA1rGERUVBAXcwS1BVzTpgliSQJkkQxIAwZ6qv/2Wp2PpYwM/SE7n5/zzMP3bdTdQ/Tb517b90qFIRMRERE9lrh6F8RERHZSwpVERGROFGoioiIxIlCVUREJE4UqiIiInGiUBUREYkThaqIiEicKFRFRETiRKEqIiISJwpVERGROFGoioiIxIlCVUREJE4UqpJyHn74YRs+fHh0TUQkfhSqklK2bdtm48aNs4yMjKhFRCR+FKqSUubNm2fLly+3s846K2oREYkfhaqklIkTJ1qDBg2sVq1aUYuISPwoVCVlbN261V5++WXr1q1b1CIiEl8KVUkZX3/9tf3888922mmnRS0iIvGlUJWU8cQTT1jr1q2tYsWKUYuISHwpVCUlrF692t5++20777zzohYRkfhTqEpKeOWVV6xkyZLWsWPHqEVEJP4UqpISHnvsMevevbsVKVIkahERiT+FqiS9mTNn2vz58+2cc86JWkREcodCVZIeVerhhx9uderUiVpERHKHQlWS2po1a3w89ZJLLolaRERyj0JVktrkyZOtRIkSdvzxx0ctIiK5R6EqSW3s2LF2xhlneLCKiOQ2haokrVmzZtncuXM1QUlE8oxCVZLWk08+aY0bN7a6detGLSIiuUuhKklp/fr1vnj+RRddFLWIiOQ+haokpbfeestPSH7CCSdELXuHbmSOdd2TIAiiS2YrVqzwMd3ff/89asmaqVOn2pgxY7Y/13PPPWfPPvusX96dzK/9+uuvW4cOHezPP/+MWrLm+++/t1NPPdWWLFkSteweyz/279/fJ4SJiEJVkhSL53fu3NnKlCkTteTcH3/8YSeddJINHjw4atm53377zY4++mj74Ycf/PrixYvt/vvv95OiZ8egQYOsZ8+etmjRIg/KAQMG2HXXXeenrtudLl262KRJk/xyRkaGvfPOO75N2cFZfF566SV/z3uyatUqD+777rvPw1hEFKqShAgzTvN2/vnnRy1758Ybb/QqdcfgoBp85plnbO3atX7b3Xff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nx+1iIjkL4WqJCwClclKHMoiIlIQKFQlYbGwPqH63XffRS0iIvlLoSoJjXHVxYsXR9dERPKXQlUS2mGHHeaH1axfvz5qERHJPwpVSWiNGjWyn3/+2X755ZeoRUQk/yhUJaFVrlzZ0tPT7fvvv49aRETyj0JVElqJEiWsVq1aNnXq1KhFRCT/KFQl4RGqM2fOjK6JiOQfhaokPMZVf/rpJ9u2bVvUIiKSPxSqkvAaN27sofrbb79FLSIi+UOhKgmvfv36tm7dOlu6dGnUIiKSPxSqkvDS0tKsevXqNmPGjKhFRCR/KFQl4bFc4YEHHmjffPNN1CIikj8UqpIUWK5wzpw50TURkfyhUJWkwHKFv/76q61duzZqERHJewpVSQqxUF22bFnUIiKS9xSqkhQ4Bdx+++1ns2bNilpERPKeQlWSBuOqX375ZXQt/7EYRU66ozdt2vT/ThBABc5PdsyfP9+efPJJ27p1a9SSNX/88YdNmjQpS9s9d+7c/9mujRs3+qn4tBCHpCqFqiSNhg0b5tpyhdddd5098MAD0bWd41jZMWPG2Jo1a/z6p59+akcccUS2T6J+55132jHHHGO///67Xz/vvPPszDPP9Mu7M27cOJs3b55f/uKLL+zCCy+0JUuW+PWsmj59up199tm2cOHCqGXnCOuuXbva6aefbps3b45azT//5s2b27Rp06IWkdSiUJWkwXKFVHjxPrfqiy++aPfff7//mxnVGJUZCBmCrGfPnvbaa695wLIoBWFcpUoVv8+OVq9e7f+yvbGKMggCf53Zs2d7tZmRkWEfffSRffXVV9tDdkc8ZuXKlda3b1979NFH/TFlypSxkiVLWrFixbZv4578+eef2ytPHrs7HMZUqlQp+/DDD23QoEFRq3kbv4M9hbJIslKoStI49NBDvfsynpOVCAiCcf/99/cVm2Ldot9++621bt3amjZtasOHD7exY8dat27d/LaLL77Y+vXr54f4UDky1kvFeP7559uRRx7pFSVBeMYZZ9g555xjhx9+uJ144okesiy1uHz5cn8egoljbwnJDRs2bF8x6tlnn7Vjjz3WOnXqZM8884x98skn1qpVKw/dYcOGWffu3f05SpcubQMGDPBlHK+//np/LOeeveyyy/z+3Bc//vijdenSxd9LbCegXLlyftuuFC5c2N8XJzO499577bnnnvN2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" alt="" />

ActionInvoker是一个实现了IActionInvoker接口类型的对象。

bool InvokeAction(ControllerContext controllerContext, string actionName);

Controller类提供了IActionInvoker的默认实现,为ControllerActionInvoker。

Controller类暴露一个返回ControllerActionInvoker类型名叫ActionInvoker的属性。它使用CreateActionInvoker()方法来创建ControllerActionInvoker实例。正如你所见,这个方法被定义为了虚方法,所以我们可以重写它并提供我们自己的返回自定义的ActionInvoker的实现。

public IActionInvoker ActionInvoker {
get {
if (_actionInvoker == null) {
_actionInvoker = CreateActionInvoker();
}
return _actionInvoker;
}
set {
_actionInvoker = value;
}
}
protected virtual IActionInvoker CreateActionInvoker() {
return new ControllerActionInvoker();
}

ActionInvoker类需要获得要执行的Action方法和Controller的明细,这些明细是由ControllerDescriptor提供的。ControllerDescriptor和ActionDescriptor在ActionInvoker中扮演着重要的作用。

ControllerDescriptor被定义为"封装描述着Controller的信息,例如它的名字,类型和Actions等"。

ActionDescriptor被定义为"提供一个Action方法的信息,例如它的名字,Controller,参数,特性和过滤器等"。

ActionDescriptor的一个重要方法是"FindAction()"。这个方法返回一个代表着将要执行的Action的ActionDescriptor对象。所以,ActionInvoker知道要调用哪一个Action。

正如我们所见,上面的ActionInvoker的InvokeAction()方法在ExecuteCore()中被调用。

当ActionInvoker的InvokeAction()方法被调用时发生如下事情:

  • ActionInvoker必须获取要执行的Controller和Action的信息。这个信息是由描述器对象提供的。Action和Controller描述器类的对象提供了Action和Controller的名字。
  • Action方法被调用

ActionResult

命令对象

直到目前为止,正如我们所见,Action方法被ActionInvoker调用。

Action方法的特点之一是它一直返回ActionResult类型,而不会返回不同的数据类型。ActionResult是一个抽象类,被定义如下:

public abstract class ActionResult
{
public abstract void ExecuteResult(ControllerContext context);
}

因为ExecuteResult()是一个抽象方法,所以不同的子类可提供ExecuteResult()方法的不同实现。

需要注意的一个重要的事情是,一个Action的结果表示该框架代表操作方法执行命令。众所周知,Action方法包含执行逻辑,Action结果返回给客户端。Action方法它们本身仅仅返回ActionResult但是不执行它。

ActionResult被执行,响应返回给客户端。所以,ActionResult对象表示在整个方法中能被传递的结果。

因此它将规范和实现分割开来,因为它代表着命令对象。为了理解.NET中命令,请参考commands

这里有一些特定的依赖我们想要返回的结果类型的ActionResult类,例如Json或Redirect到另一个方法。

我们使用的继承自我们Controller类的"Controller"类提供了许多很方便地我们可以用的有用的功能。

它提供的这样的一个功能,就是返回特定的ActionResult类型的方法。所以,我们可以仅仅调用它们的方法而不用明确地创建ActionResult对象。

aaarticlea/png;base64,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" alt="" />

下面是一些ActionResult类型和它们对应的返回ActionResult的方法:

ActionResult Class Helper Method ReturnType
ViewResult View web page
JsonResult Json Retuns a serialized JSON object
RedirectResult Redirect Redirects to another action method
ContentResult Content Returns a user-defined content type

直到现在,我们已经看到Action方法被ActionInvoker所调用。

  • 在Action方法被调用之后发生下面的事情:
  • ActionFilter的OnActionExecuting方法被调用
  • 之后,Action方法自身被调用
  • 在Action方法被调用之后,ActionFilter的OnActionExecuted被调用
  • ActionResult从Action方法被返回回来
  • ActionResult的ExecuteResult()方法被调用

ViewEngine

视图的渲染器

ViewResult是最常见的被用在几乎所有应用程序中返回类型中的一个。使用ViewEngine被用来向客户端渲染视图。视图引擎负责从视图生成HTML。

当ViewResult被方法调用者调用时,它通过重写ExecuteResult方法向响应中渲染视图。

框架提供的视图引擎是Razor视图引擎和Web Form视图引擎。但是如果你需要一些自定义的某些定制功能的视图引擎的话,你可以通过实现所有的视图引擎都实现的IViewEngine接口来创建一个新的视图引擎。

aaarticlea/png;base64,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" alt="" />

IViewEngine有下面的几个方法:

  • FindPartialView方法 当Controller希望根据所给的名字返回一个PartialView时,该方法被调用
  • FindView方法 当Controller根据所给的名字查找一个View时,该方法被调用
  • ReleaseView方法 这个方法被用来释放被ViewEngine所占住的资源

但是,并不用实现那些方法,创建视图引擎的一种简单方式是从一个新的抽象的VitualPathProviderViewEngine类派生。这个类处理了像找视图这样底层的细节。

正如上所见,ActionResult被调用了。既然ViewResult是最普通的ActionResult类型,如果ViewResult中ExecuteResult()方法被调用的时候我们来探究一下到底发生了什么。

这儿有两格重要的类,ViewResultBase和ViewResult。ViewResultBase包含下面调用ViewResult中FindView方法的代码。

public override void ExecuteResult(ControllerContext context) {
if (context == null) {
throw new ArgumentNullException("context");
}
if (String.IsNullOrEmpty(ViewName)) {
ViewName = context.RouteData.GetRequiredString("action");
} ViewEngineResult result = null; if (View == null) {
result = FindView(context);
View = result.View;
} TextWriter writer = context.HttpContext.Response.Output;
ViewContext viewContext = new ViewContext(context, View, ViewData, TempData, writer);
View.Render(viewContext, writer); if (result != null) {
result.ViewEngine.ReleaseView(context, View);
}
} protected abstract ViewEngineResult FindView(ControllerContext context);
protected override ViewEngineResult FindView(ControllerContext context) {
ViewEngineResult result = ViewEngineCollection.FindView(context, ViewName, MasterName);
if (result.View != null) {
return result;
} // we need to generate an exception containing all the locations we searched
StringBuilder locationsText = new StringBuilder();
foreach (string location in result.SearchedLocations) {
locationsText.AppendLine();
locationsText.Append(location);
}
throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture,
MvcResources.Common_ViewNotFound, ViewName, locationsText));
}

ExecuteResult()方法被调用后发生的事情如下:

  • ViewResultBase的ExecuteResult方法被调用
  • ViewResultBase调用ViewResult的FindView
  • ViewResult返回ViewEngineResult
  • ViewEngineResult的Render方法被调用使用ViewEngine来渲染视图(?)
  • 响应返回给客户端

总结

如果我们想要弄明白底层发生了什么的话,我们最好能够明白每一个组件的角色以及不同的组件是如何相互连接的。我们已经探究了由框架使用来处理响应的主要的接口和类。我相信这篇文章对于你理解MVC应用程序内部的细节是又很有帮助的。

关注点

有关MVC非常好的一点是那些所有的组件都是松耦合的。我们可以用另一个组件替换管道中的任意一个组件。这给了开发者很大的自由。这也意味着请求管道中的每一个阶段,我们都可以选择最合适的处理请求的组件。

我们也可以很自由地提供我们自己实现。这使应用程序更加可维护。

由于它松耦合架构,使得MVC应用程序非常方便测试。我们可以很容易地提供模拟对象来替代真实的对象,因为这里没有具体类的依赖。

[译]MVC应用程序生命周期的更多相关文章

  1. C# MVC 5 - 生命周期(应用程序生命周期&请求生命周期)

    本文是根据网上的文章总结的. 1.介绍 本文讨论ASP.Net MVC框架MVC的请求生命周期. MVC有两个生命周期,一为应用程序生命周期,二为请求生命周期. 2.应用程序生命周期 应用程序生命周期 ...

  2. 【深入ASP.NET原理系列】--ASP.NET请求管道、应用程序生命周期、整体运行机制

    微软的程序设计和相应的IDE做的很棒,让人很快就能有生产力..NET上手容易,生产力很高,但对于一个不是那么勤奋的人,他很可能就不再进步了,没有想深入下去的动力,他不用去理解整个框架和环境是怎么执行的 ...

  3. Asp.net MVC 之请求生命周期

    今天主要试着描述一下ASP.NET MVC 请求从开始到结束的整个生命周期,了解这些后,对MVC会有一个整体的认识. 这里主要研究了MVC请求的五个过程. 1.创建RouteTable 当ASP.NE ...

  4. Mvc请求的生命周期

    ASP.NET Core : Mvc请求的生命周期 translation from http://www.techbloginterview.com/asp-net-core-the-mvc-req ...

  5. ASP.NET请求管道、应用程序生命周期、整体运行机制

    我们知道在ASP.NET中,若要对ASP.NET应用程序进行 初始化并使它处理请求,必须执行一些处理步骤,熟悉应用程序生命周期非常重要,这样才能在适当的生命周期阶段编写代码,达到预期的效果.永远不要做 ...

  6. ASP.NET MVC 小牛之旅4:ASP.NET MVC的运行生命周期

    ASP.NET MVC的运行生命周期大致分成三大过程:(1)网址路由对比. (2)运行Controller与Action. (3)运行View并回传结果. 4.1网址路由对比 当iis收到http请求 ...

  7. [转]ASP.NET应用程序生命周期趣谈(五) IIS7瞎说

    Ps:建议初学者在阅读本文之前,先简要了解一下之前的几篇文章,以便于熟悉本文提到的一些关于IIS6的内容,方便理解.仅供参考. PS:为什么叫瞎说呢?我觉得自己理解的并不到位,只能是作为一个传声筒,希 ...

  8. [转]ASP.NET应用程序生命周期趣谈(三) HttpModule

    在之前的文章中,我们提到过P_Module(HttpModule)这个能干的程序员哥们儿,它通过在项目经理HttpApplication那里得到的授权,插手整个应用程序级别的事件处理.所有的HttpM ...

  9. [转]ASP.NET应用程序生命周期趣谈(一)

    这几天一直在看ASP.NET应用程序生命周期,真是太难了,我理解起来费了劲了,但偏偏它又是那么重要,所以我希望能给大家带来一篇容易理解又好用的文章来帮助学习ASP.NET应用程序生命周期.这篇就是了. ...

随机推荐

  1. Linking Containers Together

    Linking Containers Together In the Using Docker section we touched on connecting to a service runnin ...

  2. 蚁群算法 matlab程序(已执行)

    下面是解放军信息project大学一个老师编的matlab程序,请尊重原作者劳动,引用时请注明出处. 我经过改动添加了凝视,已经执行过,无误, function [R_best,L_best,L_av ...

  3. windows phone (17) ManipulationDelta事件

    原文:windows phone (17) ManipulationDelta事件 ManipulationDelta事件会是在触摸位置发生变化是引发,比如可以根据用户在触摸屏中移动的位置,图片发生相 ...

  4. hdu3501

    要我们求小于n并且不与n互素的数字的和, 那么可以转化为1->(n-1)的和减去小于n且与n互素的数字的和 首先,有gcd(n,i)=1, 那么gcd(n,n-i)=1, 这是因为如果a%s=0 ...

  5. update和saveOrUpdate具体解释

    在Hibernate中,最核心的概念就是对PO的状态管理.一个PO有三种状态:  1.未被持久化的VO  此时就是一个内存对象VO,由JVM管理生命周期  2.已被持久化的PO,而且在Session生 ...

  6. iOS Dev (55) 获得本年度、月、日本和其他信息

    iOS Dev (55) 获得本年度.月.日本和其他信息 作者:大锐哥 博客:http://prevention.iteye.com - NSDate *now = [NSDate date]; NS ...

  7. EXE文件结构和读取方法

    一.EXE文件概念 EXE File英文全名executable file .译作可运行文件,可移植可运行 (PE) 文件格式的文件,它能够载入到内存中.并由操作系统载入程序运行,是可在操作系统存储空 ...

  8. C#判断操作系统是32位还是64位(超简单)

    由于项目需要在64位和32位系统运行,需要判断当前系统是32位还是64位. 网上很多方法,但是都感觉不是很简洁,最后发现可以使用int的长度来判断:看代码 /// <summary>    ...

  9. VMware装ubuntu 进不去图形界面, 卡在Installing VMware Tools

    1.按Ctrl +C结束,进入命令行 2.ubuntu login:_ 依次输入: 1)你的用户名:输入自己的! 2)你的密码:输入自己的! 3)获取root权限:sudo su 输密码 4)/etc ...

  10. WPF下的视频录制界面设计

    原文:WPF下的视频录制界面设计 在去年12月份,我曾经写过三篇文章讨论C#下视频录制.播放界面的设计.这三篇文章是:利用C#画视频录制及播放的界面(一) 利用C#画视频录制及播放的界面(二)利用C# ...