MapRoute的实现如何将第二个参数中的{id}
连接到第三个参数中的id =
?
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
它是否像传入的对象一样简单?
答案 0 :(得分:1)
是
它会从defaults
参数中创建RouteValueDictionary
instance,该参数会从对象的PropertyDescriptor
填充自己。
您可以在来源中看到这一点:
if (values != null) {
PropertyDescriptorCollection props = TypeDescriptor.GetProperties(values);
foreach (PropertyDescriptor prop in props) {
object val = prop.GetValue(values);
Add(prop.Name, val);
}
}