这对我来说没有任何意义;我认为约束只会在用户点击链接时受到影响,而不是在创建链接时受到影响。我在这里错过了什么吗?
由于页面上有大量链接,打开一个新的数据上下文并为每个路由链接运行查询是一个巨大的性能缺陷。有没有办法设置所有 Html.RouteLink 助手(和其他)在创建链接时不遇到约束?
非常感谢!
这对我来说没有任何意义;我认为约束只会在用户点击链接时受到影响,而不是在创建链接时受到影响。我在这里错过了什么吗?
由于页面上有大量链接,打开一个新的数据上下文并为每个路由链接运行查询是一个巨大的性能缺陷。有没有办法设置所有 Html.RouteLink 助手(和其他)在创建链接时不遇到约束?
非常感谢!
每次检查路由约束时都不应该进行数据库调用,至少在没有适当缓存的情况下是这样。
它实际上也很有意义:
routes.MapRoute("Test1", "test1/{value}",
new { controller = "Home", Action = "Index" },
new { value = "^[0-9]+$" }
);
routes.MapRoute("Test2", "test2/{value}",
new { controller = "Home", Action = "Index" }
);
现在,如果您在生成时不检查约束,它将始终使用路由Test1
来生成 url,但是当用户单击它时它不会找到任何匹配的路由。