我有一个问题一直在思考。
从我在浏览器中输入 URL 并单击 enter 到相应控制器中的代码实际执行时会发生什么?
假设我有一个 asp.net mvc 应用程序和一个像这样的普通控制器:
public class HomeController : Controller
{
public ActionResult About(int id = 25)
{
//code
}
}
因此,如果我输入这样myUrl/home/about?id=56
的控制器就会被调用。我知道有一个{controller}/{action}/{id}
默认声明的路由模式。但是,如果一个 URL 与该模式匹配,则创建了一个控制器实例,或者会发生什么?是否有一些解析器类或类似的?是否存在包含所有控制器的列表,因此 URL 中的“主页”与HomeController
?
我知道控制器签名中的 id 参数将在模型绑定的帮助下绑定到请求上下文中的相应 id 值。但这里肯定发生了很多其他的魔法。
希望有人可以帮助一个新困惑的 asp.net mvc 用户