C# html路由助手正在对存储数据的

C# html路由助手正在对存储数据的,c#,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-routing,C#,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc Routing,这对我来说毫无意义;我认为只有当用户点击链接时,约束才会被点击,而不是当链接被创建时。我是不是遗漏了什么 由于页面上有大量链接,打开新的数据上下文并对每个路由链接运行查询是一个巨大的性能缺陷。在创建链接时,是否有办法将所有Html.RouteLink帮助程序(和其他帮助程序)设置为不符合约束条件 非常感谢 您不应该在每次检查路由约束时进行数据库调用,至少在没有适当缓存的情况下是这样 而且它实际上也非常有意义: routes.MapRoute("Test1", "test1/{value}",

这对我来说毫无意义;我认为只有当用户点击链接时,约束才会被点击,而不是当链接被创建时。我是不是遗漏了什么

由于页面上有大量链接,打开新的数据上下文并对每个路由链接运行查询是一个巨大的性能缺陷。在创建链接时,是否有办法将所有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" }
);

现在,如果您在生成URL时不检查约束,它将始终使用route
Test1
来生成URL,但当用户单击它时,它将找不到任何匹配的路由。

知道在这种情况下如何进行数据库缓存吗?我不希望每次使用路由和约束时都打开新的数据上下文。谢谢