Asp.net mvc 路由/解析asp.net mvc
我一直在想一个问题 从在浏览器中输入URL并单击enter,到相应控制器中的代码实际执行,会发生什么情况 假设我有一个asp.net mvc应用程序和一个像这样的普通控制器:Asp.net mvc 路由/解析asp.net mvc,asp.net-mvc,asp.net-mvc-routing,Asp.net Mvc,Asp.net Mvc Routing,我一直在想一个问题 从在浏览器中输入URL并单击enter,到相应控制器中的代码实际执行,会发生什么情况 假设我有一个asp.net mvc应用程序和一个像这样的普通控制器: public class HomeController : Controller { public ActionResult About(int id = 25) { //code } } 因此,如果我输入像myUrl/home/about?id=56这样的值,就会调用该控制器。我知道有一种路由模式,
public class HomeController : Controller
{
public ActionResult About(int id = 25)
{
//code
}
}
因此,如果我输入像myUrl/home/about?id=56
这样的值,就会调用该控制器。我知道有一种路由模式,比如默认声明的{controller}/{action}/{id}
。但是,如果URL与该模式匹配,那么是否创建了控制器实例,或者发生了什么?是否有一些解析器类或类似类?是否有一个包含所有控制器的列表,以便URL中的“主”与主控制器匹配
我知道控制器签名中的id参数将在模型绑定的帮助下绑定到请求上下文中相应的id值。但是这里肯定有很多其他的魔法在发生
希望有人能帮助一个新的困惑的asp.net mvc用户简而言之:
DefaultControllerFactory
使用反射()
ControllerActionInvoker
使用反射()按名称查找并调用操作
可以找到良好的总体描述